是否有一个很好的LINQ(或其他)方法通过对现有数组的每个元素执行转换来创建新数组?
例如,替代:
List<int> numbers = new List<int>();
foreach(string digit in stringArray)
{
numbers.Add(Convert.ToInt32(digit));
}
return numbers.ToArray();
Run Code Online (Sandbox Code Playgroud)
return stringArray.Select(s => Convert.ToInt32(s)).ToArray();
Run Code Online (Sandbox Code Playgroud)
像这样的东西?
int[] numbers = stringArray.Select(s => Convert.ToInt32(s)).ToArray();
Run Code Online (Sandbox Code Playgroud)
或者,使用查询语法:
int[] numbers = (from s in stringArray
select Convert.ToInt32(s)).ToArray();
Run Code Online (Sandbox Code Playgroud)
是的!LINQ非常适合这类事情.以下是使用查询语法的示例:
return (from s in stringArray
select Convert.ToInt32(s)).ToArray();
Run Code Online (Sandbox Code Playgroud)
BFree的答案是方法语法等价.这是关于两者之间差异的MSDN文章.