簡體   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