c# - 如何在 C# 中对二维数组进行排序

标签 c# arrays sorting

我已经阅读了很多关于对二维数组进行排序的文章,但我仍然无法掌握它,所以我想知道是否有人可以给我一些建议...

我有一个列出字母和数量的数组(我正在对一段文本进行频率分析)。我已将此数据读入一个矩形数组,需要先按最高频率对其进行排序。到目前为止,这是我的代码:

    //create 2D array to contain ascii code and quantities
    int[,] letterFrequency = new int[26, 2];

    //fill in 2D array with ascaii code and quantities
    while (asciiNo <= 90)
     {

       while ((encryptedText.Length - 1) > counter)
      {
                if (asciiNo == (int)encryptedText[index])
               {
                      letterCount++;
               }
                counter++;
                index++;
      }

    letterFrequency[(storeCount), (0)] = (char)(storeCount+66);
    letterFrequency[(storeCount), (1)] = letterCount;
    storeCount++;
    counter=0;
    index=0;
    letterCount = 0;
    asciiNo++;
    }

最佳答案

您正在使用二维数组来表示 2 个独立的向量 - 符号和计数。相反,使用 2 个单独的数组。 Array.Sort 有一个重载,需要 2 个数组,并在一个 数组上排序,但将更改应用于两个,实现您想要的。

这也允许您对字符使用 char[] 而不是 int[]:

char[] symbols = ...
int[] counts = ...
...load the data...
Array.Sort(counts, symbols);
// all done!

此时 点,计数已排序,符号仍将逐个索引与它们相关的计数匹配。

关于c# - 如何在 C# 中对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8866414/

相关文章:

c# - 哪个代码更好 : using "as" or "is"?

javascript - 创建数组的函数

java - 按字母顺序排列字符串中的字符,然后将按字母顺序排列的字符放入新字符串中?

c# - 在 ASP.NET MVC 中返回文件以查看/下载

C# 到 Java : where T : new() Syntax

java - 可以分开但相同的数组通过引用永远相等

java - 解决难题,数组编程,java

c - C 中的分而治之范式和递归 - 合并排序示例

python - 按pyes和elasticsearch中的多个参数排序

c# - 从头构建多层 Web 应用程序时,我应该使用 WCF 进行数据访问吗?