什么是C#中C ++向量的良好替代品?

时间:2010-01-30 01:44:14

标签: c# .net c++

我正在努力提高我的其他语言技能,使用c ++作为我的主要编程语言。我目前的项目是锤击C#.net,因为我听说对于熟悉c ++和VB.net的人来说,这是一种很好的中间语言。

通常在使用c ++中未知数量的元素时,我会将变量声明为向量,然后从那里开始。向量似乎不存在于c#中,而在我当前的程序中,我一直在使用arraylists,但我开始怀疑使用arraylists是否是一个好习惯,因为我在某处看到它是来自.net 1.0的遗留物

长问题简介 - c#最常用的列表类型是什么?

4 个答案:

答案 0 :(得分:26)

如果您定位.NET 2.0之前的版本,请使用ArrayList

如果您的目标是.NET 2.0+,那么请使用泛型List<T>

您可能需要找到其他C ++标准容器的替换,因此可以将C ++映射到.NET 2.0+类似类型或等价物:

std::vector - List<T>
std::list - LinkedList<T>
std::map - Dictionary<K, V>
std::set - HashSet<T>
std::multimap - Dictionary<K, List<V>>

答案 1 :(得分:0)

我建议您浏览System.Collections命名空间,尤其是System.Collections.Generics对象集。可以在各种Lists,Dictionaries和NameValueCollections中强类型化内置功能,为您提供广泛的功能。它们也是可扩展的,因此如果它们不能完全满足您的需求,您只需扩展它们并添加新功能。

答案 2 :(得分:0)

我认为那是List<T>ArrayList是非泛型类型,正如您正确观察到的那样 - 来自.NET的剩余1次。从.NET 2开始,您可以使用泛型,因此List<T>

答案 3 :(得分:0)

简短回答:List<T>。您可以找到文档here