【问题标题】:Selecting array values from specific indexes order by index array按索引数组从特定索引中选择数组值
【发布时间】:2014-02-20 21:47:19
【问题描述】:

我想从特定索引中选择数组值 现在我有了这个。

var xs = new[] { 11,12,13,14,15 };
var ind = new[] { 3,2,1,0 };
var results = xs.Where((x, idx) => ind.Contains(idx)).ToArray();

结果是 {11,12,13,14} 但是,我希望我的结果按索引数组排序,索引数组应该是 {14,13,12,11}

非常感谢

【问题讨论】:

    标签: c# .net arrays linq


    【解决方案1】:
    var results = ind.Select(i => xs[i]).ToArray();
    

    【讨论】:

    • 对不起。我不小心投错了票。为什么我想不通。非常感谢人
    • 别担心,伙计。当您开始体验 Linq 时,它会是一种乐趣。
    • 谢谢。我希望我能享受它。现在对我来说很痛苦
    【解决方案2】:
    var array = xs.Zip(ind, (x, i) => new Tuple<int, int>(x, i))
               .OrderBy(t => t.Item2)
               .Select(t => t.Item1)
               .ToArray();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-28
      • 2018-02-08
      • 2017-02-08
      • 2018-05-29
      • 2018-12-04
      • 1970-01-01
      • 2021-09-28
      • 2021-07-20
      相关资源
      最近更新 更多