按索引数组从特定索引中选择数组值

时间:2014-02-20 21:47:19

标签: c# .net arrays linq

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

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}

非常感谢

2 个答案:

答案 0 :(得分:3)

var results = ind.Select(i => xs[i]).ToArray();

答案 1 :(得分:0)

var array = xs.Zip(ind, (x, i) => new Tuple<int, int>(x, i))
           .OrderBy(t => t.Item2)
           .Select(t => t.Item1)
           .ToArray();