C# 如何使用具有Linq的索引数组从数组中选择项?

C# 如何使用具有Linq的索引数组从数组中选择项?,c#,arrays,linq,C#,Arrays,Linq,如何使用具有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

如何使用具有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));

是否有一种LINQ方法(或其他一种线性方法)来消除for循环?

LINQ方法是这样的:

var b = idxs.Select(x => A[x]).ToArray();
您可以将其与
索引
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);
输出将是:

two
four

下面是一个。

为什么要删除for循环?慢吗?难读?
two
four