如何将List <int>转换为string []?</int>

时间:2010-12-23 04:23:22

标签: c# arrays list

我需要一种简单的方法将List<int>转换为string数组。

我有:

var the_list = new List<int>();
the_list.Add(1);
the_list.Add(2);
the_list.Add(3);

string[] the_array = new string[the_list.Count];
for(var i = 0 ; i < the_array.Count; ++i)
    the_array[i] = the_list[i].ToString();

......对我来说这看起来很难看。

有更简单的方法吗?


注意:我正在寻找更简单的方式 - 不一定是更快的方式。

5 个答案:

答案 0 :(得分:54)

使用LINQ:

string[] the_array = the_list.Select(i => i.ToString()).ToArray();

答案 1 :(得分:4)

抱歉,我没有在这台机器上安装.NET,所以完全未经测试:

var theList = new List<int>() { 1, 2, 3 };

var theArray = theList.Select(e => e.ToString()).ToArray();       // Lambda Form
var theArray = (from e in theList select e.ToString()).ToArray(); // Query Form

答案 2 :(得分:4)

我知道你有一个很好的答案,但你不需要LINQ或Select。您可以使用ConvertAll和匿名方法来完成。像这样:

var list = new List<int>();
....
var array = list.ConvertAll( x => x.ToString() ).ToArray(); 

类似的想法,但我认为这不是linq。如果重要的话。

答案 3 :(得分:2)

List有一个ToArray()方法。它可以节省您的打字,但可能效率不高。

答案 4 :(得分:0)

因为您的列表只有一个数字,所以您可以轻松地将它们转换为字符串。只需创建一个循环并将其成员转换为字符串。

string[] the_array = new string[the_list.Count];
int i=0;
foreach(var item in the_list)
{
  the_array[i] = item.ToString();
  i++;
}