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

标签 c# arrays sorting

我有以下数组:

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/

相关文章:

java - 给定两个排序列表(或数组)和一个数字 k,创建一个算法来获取两个列表中最少的 k 个数字

Ruby,如何将一个数组改组为另一个数组

c# - Dapper 读取 SqlHierachyId 列(SQL Server 2008 R2)

java - 如何使用 Jackson 反序列化 2D 数组

c# - RedirectToAction 不适用于 Tempdata - ASP.net core MVC

ios - 基于NSDate将数组映射到字典

java - 如何在不使用 guava 或任何外部库的情况下将字符串类型的 ArrayList 拆分为 5 个不同的子数组?

c++ - 在 C++ 中存储变量

c# - MVVMCross,FieldBinding 插件,iOS,代码绑定(bind)不起作用

c# - 使用linq在查找表中查找记录