8

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

for ループを取り除くための LINQ の方法 (または他のワンライナー) はありますか?

4

2 に答える 2

16

LINQ の方法は次のようになります。

var b = idxs.Select(x => A[x]).ToArray();
于 2013-03-20T12:32:01.723 に答える
8

SelectあなたindexとあなたのA[index]Likeでそれを使うことができます:

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ます。

于 2013-03-20T12:34:42.963 に答える