繁体   English   中英

C#如何对二维数组值进行排序

[英]c# how to sort 2D array values

我有2个数组

string[,] marksMatrix = new string[5, 4];
string[] studentIDArr = new string[5];

分数矩阵具有5个学生的4门学科的分数,其学生ID存储在studentIDArr中。 显示每个学生的学生证和成绩时,如何按学生证的升序对其进行排序?

textBox2.Text = "StudentID\tOOAD\tDWA\tDB\tWAD\r\n";
int rowlength = marksMatrix.GetLength(0);
int collength = marksMatrix.GetLength(1);

for (int y = 0; y < rowlength; y++) {
  textBox2.Text += studentIDArr[y];
  for (int x = 0; x < collength; x++) {
    textBox2.Text += "\t" + marksMatrix[y,x];
  }
  textBox2.Text += "\r\n";
}

可能的解决方案是:

  1. 声明一个新的字符串向量(我们称其为StudentIDArrSorted)
  2. 排序studentIDArr并将其存储在studentIDArrSorted中,而无需更改studentIDArr的顺序。
  3. 现在在studentIDArrSorted上添加一个
  4. 对于studentIDArrSorted [i],搜索是在studentIDArr中的位置。
  5. 从marksMatrix打印相应的列。

示例:初始列表:“ 3”,“ 4”,“ 2”
排序列表:“ 2”,“ 3”,“ 4”

列表中“ 2”的旧位置是3,因此必须从矩阵中打印第3行。
注意:我认为这些ID是唯一的。

一个更简单的解决方案是将两个数组(标记和ID)存储在一个对象中。 这将消除所有开销。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM