通过对现有数组的每个元素执行转换,是否有一个很好的LINQ(或其他)方法来创建新数组?
E.g。替代:
List<int> numbers = new List<int>();
foreach(string digit in stringArray)
{
numbers.Add(Convert.ToInt32(digit));
}
return numbers.ToArray();
答案 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。