2012-01-16 39 views
0

C#中可能不使用泛型从System.Collections.IList接口获取数组吗?如何从IList接口获取数组

编辑:我需要一些方法将集合转换为数组。我的收藏已分配给IList。这有可能做到吗?我不知道我的收藏的真正实施,所以我不能做像这样 int [] arr =(ArrayList)list.ToArray();

+0

这不是真的清楚你想要达到的目标。请更具体一些。 – 2012-01-16 12:05:02

+0

CopyTo()? http://msdn.microsoft.com/en-us/library/system.collections.icollection.copyto.aspx – IanNorton 2012-01-16 12:05:38

+0

@Jon Skeet请参阅我的编辑 – 2012-01-16 12:08:37

回答

2

可以使用CopyTo方法:

IList list = new List<string>(new[] { "one", "two", "three" }); 
string[] array = new string[list.Count]; 
list.CopyTo(array, 0); 
+0

这使用泛型 – 2012-01-16 12:07:57

+3

@ Neil:是的,源列表是通用的,但它只能通过非通用的IList接口使用。 – 2012-01-16 12:08:32

+3

为了强调Fredrik的观点 - 你几乎可以忽略第一行'='右边的所有内容;这里最重要的是“我们有一个名为'list'的IList'” – 2012-01-16 12:10:13