我有以下数组:
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项?
您可以这样做,但是您需要一个容器来保存输出索引对,快速执行此操作的方法是匿名类型和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)
在此之后sorted
是IEnumerable
匿名类型,每个类型都是数组的索引和值.
编辑:放最大的......