2013-03-20 26 views
6

Linq ile bir dizi indeks kullanarak bir diziden öğeleri nasıl seçerim?Linq ile bir dizi diziyi kullanarak bir diziden öğeleri nasıl seçerim?

ardından kod çalışır:

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)); 

çıkışı:

 two, four 

döngü kurtulmak için bir LINQ yolu (ya da diğer tek-liner) var mı?

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

Neden for döngüsünden kurtulmak istersiniz? Yavaş mı? Okunması zor? –

cevap

5

Sen Select senin index ve A[index] beğendiniz ile kullanabilirsiniz:

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); 

Çıktı olacaktır: Burada

two 
four 

14

bir LINQ yolu bu olacaktır DEMO.

+0

+1 çünkü yeni bir şey öğrendim – Youssef

İlgili konular