我有一个ICollection<string>
类型的对象。什么是最好的方式转换为string[]
。ICollection <string> to string []
这怎么能在.NET 2中完成?
如何在C#的更高版本中完成清洁工作,或许在C#3中使用LINQ?
我有一个ICollection<string>
类型的对象。什么是最好的方式转换为string[]
。ICollection <string> to string []
这怎么能在.NET 2中完成?
如何在C#的更高版本中完成清洁工作,或许在C#3中使用LINQ?
你可以使用下面的代码片段将其转换为一个普通的数组:
string[] array = new string[collection.Count];
collection.CopyTo(array, 0);
这应该做的工作:)
在ICollection<String>
的(简单)的情况下,使用ToArray的:
String[] GetArray(ICollection<String> mycoll)
{
return mycoll.ToArray<String>();
}
编辑:与.net 2.0,你可以用一个额外的List<String>
返回数组:
String[] GetArray(ICollection<String> mycoll)
{
List<String> result = new List<String>(mycoll);
return result.ToArray();
}
如果您正在使用C#3.0和.NET Framework 3.5,你应该能够做到:
ICollection<string> col = new List<string>() { "a","b"};
string[] colArr = col.ToArray();
当然
,你必须有 “使用System.Linq的;”在文件顶部
我需要初始化正确大小的阵列第一个.. 不能我只是这样做: string [] futures = new string [] {}; FutureFVDictionary.Keys.CopyTo(futures,0); ; – leora 2008-11-30 11:54:38
该数组必须首先被初始化为正确的大小 - 否则CopyTo将失败并出现ArgumentException。 – AdrianoKF 2008-11-30 12:06:27
与列表(mycoll).ToArray()您不必担心大小。 –
gimel
2008-11-30 12:40:24