2010-11-09 47 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

相關問題