2013-03-20 51 views
6

如何從Linq使用索引數組選擇項目?如何使用Linq中的索引數組從數組中選擇項目?

下面的代碼工作:

String[] A = new String[] { "one", "two", "three", "four" }; 
int[] idxs = new int[] { 1, 3 }; 
String[] B = new String[idxs.Length]; 
for (int i = 0; i < idxs.Length; i++) 
{ 
    B[i] = A[idxs[i]]; 
} 
System.Diagnostics.Debug.WriteLine(String.Join(", ", B)); 

輸出:

 two, four 

有一個LINQ的方式(或其他的單行),以擺脫對循環?

+2

爲什麼你想擺脫for循環?它慢嗎?難以閱讀? – 2013-03-20 12:29:13

回答

5

您可以Selectindex和你A[index]喜歡使用它:

String[] A = new String[] { "one", "two", "three", "four" }; 
int[] idxs = new int[] { 1, 3 }; 
var result = idxs.Select(i => A[i]).ToArray(); 

foreach(var s in result) 
    Console.WriteLine(s); 

輸出將是:

two 
four 

這裏是DEMO

14

LINQ的方法是這樣的:

var b = idxs.Select(x => A[x]).ToArray(); 
+0

+1,因爲我學到了新的東西 – Youssef 2013-03-20 12:48:16

相關問題