是否有一个很好的LINQ(或其他)方法通过对现有数组的每个元素执行转换来创建新数组?在C#中转换数组的优雅方式?
E.g.替代:
List<int> numbers = new List<int>();
foreach(string digit in stringArray)
{
numbers.Add(Convert.ToInt32(digit));
}
return numbers.ToArray();
是否有一个很好的LINQ(或其他)方法通过对现有数组的每个元素执行转换来创建新数组?在C#中转换数组的优雅方式?
E.g.替代:
List<int> numbers = new List<int>();
foreach(string digit in stringArray)
{
numbers.Add(Convert.ToInt32(digit));
}
return numbers.ToArray();
return stringArray.Select(s => Convert.ToInt32(s)).ToArray();
是的! LINQ非常适合这种事情。下面是使用query syntax一个例子:
return (from s in stringArray
select Convert.ToInt32(s)).ToArray();
贝丽的answer是方法的语法等效的。这两个之间的区别是MSDN article。
这样的事情?
int[] numbers = stringArray.Select(s => Convert.ToInt32(s)).ToArray();
或者,与查询语法:
int[] numbers = (from s in stringArray
select Convert.ToInt32(s)).ToArray();
1两者的可读查询和方法的语法 – cordialgerm 2010-11-09 22:35:10