.net 我可以用不同的项目按顺序对整数数组进行排序吗?

.net 我可以用不同的项目按顺序对整数数组进行排序吗?,.net,arrays,sorting,.net,Arrays,Sorting,我有一个整数数组 Dim intArray() as integer = {1, 1, 5, 9, 9, 10, 15, 15, 23, 25} 我想要这个数组中具有不同值的顺序 1-1,9-5,10-9,15-15,25-23={0,4,1,0,2} 再次按升序:{0,0,1,2,4} 我想要这个结果 intArray = {1, 1, 15, 15, 9, 10, 23, 25, 5, 9} 谢谢以下是使用LINQ的方法: Dim result = intArray _

我有一个整数数组

Dim intArray() as integer = {1, 1, 5, 9, 9, 10, 15, 15, 23, 25}
我想要这个数组中具有不同值的顺序

1-1,9-5,10-9,15-15,25-23={0,4,1,0,2}

再次按升序:{0,0,1,2,4}

我想要这个结果

intArray = {1, 1, 15, 15, 9, 10, 23, 25, 5, 9}

谢谢

以下是使用LINQ的方法:

Dim result = intArray _
            .Select(Function(x, i) New With {.Value = x, .Index = i}) _
            .GroupBy(Function(x) x.Index \ 2) _
            .Select(Function(x) x.Select(Function(y) y.Value).ToList()) _
            .OrderBy(Function(x) x(1) - x(0)) _
            .SelectMany(Function(x) x) _
            .ToArray()

这段代码首先选择每个元素的值和索引(因为我们需要索引才能将每两个元素组合在一起),然后将每两个元素组合在一起,并将它们放入自己的列表中(就像我们有一个大小为两个列表的列表一样)。然后,它根据第二个值和第一个值之间的差值对这些列表进行排序。然后,它会为列表列表重新创建一个列表。

您是否尝试了Array.Sort()?否,因为这不是一个简单的方法。。也许林克更好。。