2013-03-20 13 views
6

Jak wybrać elementy z tablicy przy użyciu tablicy indeksów z Linq?Jak wybrać elementy z tablicy przy użyciu tablicy indeksów z Linq?

następujący kod działa:

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

wyjściowa:

 two, four 

Czy istnieje sposób LINQ (lub drugi-liner), aby pozbyć się pętli for?

+2

Dlaczego chcesz pozbyć się pętli for? Czy to jest wolne? Ciężkie do przeczytania? –

Odpowiedz

5

Można go używać z Select swojej index i swojej A[index] odczuwalna:

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

wyjściowe będą:

two 
four 

Tutaj to DEMO.

14

LINQ sposobem byłoby to:

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

+1, ponieważ nauczyłem się czegoś nowego – Youssef

Powiązane problemy