C#中可能不使用泛型从System.Collections.IList接口获取数组吗?如何从IList接口获取数组
编辑:我需要一些方法将集合转换为数组。我的收藏已分配给IList。这有可能做到吗?我不知道我的收藏的真正实施,所以我不能做像这样 int [] arr =(ArrayList)list.ToArray();
C#中可能不使用泛型从System.Collections.IList接口获取数组吗?如何从IList接口获取数组
编辑:我需要一些方法将集合转换为数组。我的收藏已分配给IList。这有可能做到吗?我不知道我的收藏的真正实施,所以我不能做像这样 int [] arr =(ArrayList)list.ToArray();
可以使用CopyTo
方法:
IList list = new List<string>(new[] { "one", "two", "three" });
string[] array = new string[list.Count];
list.CopyTo(array, 0);
这使用泛型 – 2012-01-16 12:07:57
@ Neil:是的,源列表是通用的,但它只能通过非通用的IList接口使用。 – 2012-01-16 12:08:32
为了强调Fredrik的观点 - 你几乎可以忽略第一行'='右边的所有内容;这里最重要的是“我们有一个名为'list'的IList'” – 2012-01-16 12:10:13
这不是真的清楚你想要达到的目标。请更具体一些。 – 2012-01-16 12:05:02
CopyTo()? http://msdn.microsoft.com/en-us/library/system.collections.icollection.copyto.aspx – IanNorton 2012-01-16 12:05:38
@Jon Skeet请参阅我的编辑 – 2012-01-16 12:08:37