2010-11-09 40 views
4

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

E.g.替代:

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

回答

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

是的! LINQ非常适合这种事情。下面是使用query syntax一个例子:

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

贝丽的answer是方法的语法等效的。这两个之间的区别是MSDN article

8

这样的事情?

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

或者,与查询语法:

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

1两者的可读查询和方法的语法 – cordialgerm 2010-11-09 22:35:10

相关问题