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

6

有没有一种好的LINQ(或其他)方法,可以通过对现有数组中的每个元素执行变换来创建一个新数组?

例如,与以下内容相比:

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

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

9

类似这样的内容吗?

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

或者,使用查询语法:

或者,使用查询语法:

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

5

没错!LINQ非常适合这种事情。以下是使用查询语法的示例:

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

BFree的回答是方法语法的等效形式。这里有一篇MSDN文章介绍了两者之间的区别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接