Linq OrderBy最后n个值

时间:2017-07-05 15:32:16

标签: c# linq

假设我有一系列的整数:

int[] values = new int[]{1,2,7,9,8,0};

如何订购最后2个值?

int[] values = new int[]{1,2,7,9,0,8};

3 个答案:

答案 0 :(得分:4)

你可以这样做:

int[] values = new int[] { 1, 2, 7, 9, 8, 0 };
// Array.Sort accepts index and length, so you can sort only part of array
Array.Sort(values, values.Length - 2, 2);
// results in {1, 2, 7, 9, 0, 8}

答案 1 :(得分:0)

使用Generic Enumerable扩展,我想出了这个。 不要认为它是最漂亮的东西。 Evk的解决方案看起来更清洁。

values = values.TakeWhile((n, index) => index < values.Length -2)
        .Concat(
             values.SkipWhile((n, index) => index < values.Length - 2).OrderBy(value => value)
         ).ToArray();

答案 2 :(得分:0)

试试这个

categories

我在手机上写信抱歉没有格式的文字