Array的通用替代品是什么?

时间:2009-02-24 17:36:38

标签: c# .net arrays generics

在C#中,ArrayListHashTable等一些集合具有List<T>Dictionary<TKey, TValue>的通用备选方案。

Array还有一个通用替代方案吗?

5 个答案:

答案 0 :(得分:6)

不 - 只需使用强类型数组,例如int[]。首先使用“弱类型”Array是相对罕见的 - 事实上,我认为你不能真正创造一个。每个Array都是一个强类型的,即使你没有这样说。

答案 1 :(得分:4)

在特殊的编译器支持下,数组一直都是通用的。

E.g。 System.Array允许对象进入,但int []不允许。

答案 2 :(得分:4)

如果您正在寻找最接近数组的泛型集合类型,那么您可能需要List<T>。但这并不是一回事。

扩展其他人所说的内容:拥有泛型类型的关键在于程序员可以根据当前程序的需要使用这些泛型类型的类型特定的实例。数组已经特定于类型。你总是可以选择T[]

例如,看看这个简单的函数定义:

void SomeFunction(int[] x) 

你也可以这样想:

void SomeFunction<T>(T[] x) 

程序员选择使用int为类型参数调用它:

SomeFunction<int>(myIntArray)

答案 3 :(得分:1)

扩展Jon的回答

数组没有通用的选择,因为拥有通用数组非常好。

public static T[] CreateArray<T>(T item1, T item2) {
   T[] array = new T[2];
   array[0] = item1;
   array[1] = item2;
   return array;
}

答案 4 :(得分:0)

不需要通用替代方法,因为在定义数组时,您需要声明数组的类型。您提到的所有类都是简单的集合类。 aray是一种完全不同的数据结构。