在C#中转换数组的优雅方式?

时间:2010-11-09 20:48:38

标签: c# linq

通过对现有数组的每个元素执行转换,是否有一个很好的LINQ(或其他)方法来创建新数组?

E.g。替代:

List<int> numbers = new List<int>();
foreach(string digit in stringArray)
{
  numbers.Add(Convert.ToInt32(digit));
}
return numbers.ToArray();

3 个答案:

答案 0 :(得分:8)

return stringArray.Select(s => Convert.ToInt32(s)).ToArray();

答案 1 :(得分:8)

这样的东西?

int[] numbers = stringArray.Select(s => Convert.ToInt32(s)).ToArray();

或者,使用查询语法:

int[] numbers = (from s in stringArray
                 select Convert.ToInt32(s)).ToArray();

答案 2 :(得分:5)

是的! LINQ非常适合这类事情。以下是使用query syntax的示例:

return (from s in stringArray 
        select Convert.ToInt32(s)).ToArray();

BFree的answer是等效的方法语法。这是两者之间差异的MSDN article