如何在Linq中将int列表转换为字符串数组?

时间:2009-03-29 11:19:48

标签: .net linq .net-3.5

我有一个IList,我希望把它变成一个ToArray()字符串结果。 目前我必须做以下事情:(

List<string> values = new List<string>();
foreach(var value in numberList)
{
    values.Add(value.ToString());    
}

...

string blah = string.Join(",", values.ToArray());

我希望删除foreach并用一些FunkyColdMedina linq代码替换它。

干杯!

3 个答案:

答案 0 :(得分:10)

values.Select(v => v.ToString()).ToArray();

或一个班轮

string blah = string.Join(",", values.Select(v => v.ToString()).ToArray());

答案 1 :(得分:3)

List<Int32> source= new List<Int32>()
{
  1,2,3


} // Above is List of Integer


//I am Using ConvertAll Method of  List
//This function is use to convert from one type to another
//Below i am converting  List of integer to list of string 


List<String> result = source.ConverTAll(p=>p.toString());


string[] array = result.ToArray()

答案 2 :(得分:0)

对于那些没有使用LINQ的人来说这个问题(即如果你不是在.NET 3.x上)那么会有一个稍微复杂一点的方法。他们的关键是,如果你创建一个List,你就可以访问List.ToArray():

IList<int> numberList = new List<int> {1, 2, 3, 4, 5};

int[] intArray = new List<int>(numberList).ToArray();

string blah = string.Join(",", Array.ConvertAll(intArray, input => input.ToString()));

效率不高,因为您正在创建输入数据,List,int数组和字符串数组,只是为了获取连接的字符串。没有.NET 3.x,你的迭代器方法可能是最好的。