在C#中对多维[,]数组进行排序,由整数组成

Kdg*_*Dev 3 c# arrays sorting

我有以下数组:

private int[,] testSamples = new testSamples[101,101];
Run Code Online (Sandbox Code Playgroud)

它应该代表一个名单,列0到100和0到100行.在这个名单中,各种化学液体都会被丢弃.我这样做的人想以这样一种方式工作,即他可以先用最多的液体来处理容器.

所以,我需要以这种方式获取数据并打印出来:

testSamples[35,40] = 12
testSamples[11,12] = 11
testSamples[92,14] = 10
testSamples[18,3] = 10
testSamples[1,61] = 7
...
Run Code Online (Sandbox Code Playgroud)

例如.我已经开始讨论这个问题几天了,我在StackoverFlow上讨论了其他一些问题,但是我无法让它们工作.

有没有办法做到这一点,或者我应该放弃数组并转到另一种容器,如ArrayLists或List项?

Ric*_*ard 5

您可以这样做,但是您需要一个容器来保存输出索引对,快速执行此操作的方法是匿名类型和LINQ:

var sorted = from x in Enumerable.Range(0, testSamples.GetLength(0))
             from y in Enumerable.Range(0, testSamples.GetLength(1))
             select new {
                X = x,
                Y = y,
                Value = testSamples[x,y]
             } into point
             orderby point.Value descending
             select point;
Run Code Online (Sandbox Code Playgroud)

在此之后sortedIEnumerable匿名类型,每个类型都是数组的索引和值.

编辑:放最大的......