【问题标题】:How do I select items from an array using an array of indices with Linq?如何使用 Linq 的索引数组从数组中选择项目?
【发布时间】:2013-03-20 12:26:53
【问题描述】:

如何通过 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 循环?

【问题讨论】:

  • 为什么要去掉 for 循环?慢吗?难以阅读?

标签: c# arrays linq


【解决方案1】:

LINQ 方式是这样的:

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

【讨论】:

    【解决方案2】:

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

    这是DEMO

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 2017-05-28
      相关资源
      最近更新 更多