我有以下数组:
private int[,] testSamples = new testSamples[101,101];
它应该代表一个花名册,从 0 到 100 列,从 0 到 100 行。在这个花名册中,放置了各种化学液体。我正在为之服务的人希望以这样一种方式工作,即他可以首先处理装有最多液体的容器。
因此,我需要以这种方式获取并打印数据:
testSamples[35,40] = 12
testSamples[11,12] = 11
testSamples[92,14] = 10
testSamples[18,3] = 10
testSamples[1,61] = 7
...
例如。 几天来我一直在思考这个问题,我已经在 StackoverFlow 上调查了其他一些问题,但我无法解决其中任何一个问题。
有没有办法做到这一点,或者我应该放弃数组并转向另一种容器,例如 ArrayLists 或 List items?
最佳答案
你可以这样做,但你需要一个容器来保存索引的输出对,一个快速的方法是匿名类型和 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;
在此sorted
之后是匿名类型的IEnumerable
,每个都是数组中的索引和值。
编辑:把最大的放在第一位......
关于c# - 在C#中对由整数组成的多维[,]数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2185079/