如何使用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));
Run Code Online (Sandbox Code Playgroud)
输出:
two, four
Run Code Online (Sandbox Code Playgroud)
是否有LINQ方式(或其他单线程)摆脱for循环?
Dan*_*rth 14
LINQ方式是这样的:
var b = idxs.Select(x => A[x]).ToArray();
Run Code Online (Sandbox Code Playgroud)
您可以将它与Select您index和您的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);
Run Code Online (Sandbox Code Playgroud)
输出将是:
two
four
Run Code Online (Sandbox Code Playgroud)
这是一个DEMO.