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

有没有一种 LINQ 方式(或其他单行)来摆脱 for 循环?

4

2 回答 2

16

LINQ 方式是这样的:

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

您可以将它与Selectindex和您的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 回答