C# 根据用户输入对2d字符串数组进行排序?

C# 根据用户输入对2d字符串数组进行排序?,c#,arrays,visual-studio,sorting,C#,Arrays,Visual Studio,Sorting,我对编程相当陌生,最近我收到一份学校作业,其中我需要对2D数组进行排序。基本上,程序需要接收来自用户的各种名称,并按原始、降序和升序打印出来。这是我到目前为止的代码:接受值的按钮,以及打印原始作品的按钮,但我无法对输入进行排序。正如您可能会在升序按钮中看到的,我尝试使用Array.Sort,但意识到它只适用于1D数组,我真的不知道还有什么可以尝试 public partial class Form1 : Form { string[,] matrizN = new string[3,3];

我对编程相当陌生,最近我收到一份学校作业,其中我需要对2D数组进行排序。基本上,程序需要接收来自用户的各种名称,并按原始、降序和升序打印出来。这是我到目前为止的代码:接受值的按钮,以及打印原始作品的按钮,但我无法对输入进行排序。正如您可能会在升序按钮中看到的,我尝试使用
Array.Sort
,但意识到它只适用于1D数组,我真的不知道还有什么可以尝试

public partial class Form1 : Form {
  string[,] matrizN = new string[3,3];
  int n = 0;
  int m = 0;
  public Form1() {
    InitializeComponent();
  }

  private void btn_Acpt_Click(object sender, EventArgs e) {
    if (n < 3) {
      if (m < 3) {
        matrizN[n, m] = txt_Val.Text;
        m++;
      } else {
        m = 0;
        n++;
        matrizN[n, m] = txt_Val.Text;
      }
      txt_Val.Clear();
      txt_Val.Focus();
    } else {
      MessageBox.Show("Limit 9 names");
    }
  }

  private void btn_Ori_Click(object sender, EventArgs e) {
    for (int x = 0; x < 3; x++) {
      for (int y = 0; y < 3; y++) {
        MessageBox.Show(matrizN[x, y].ToString());
      }
    }
  }

  private void btn_Asc_Click(object sender, EventArgs e) {
    Array.Sort(matrizN);
    for (int x = 0; x < 3; x++) {
      for (int y = 0; y < 3; y++) {
        MessageBox.Show(matrizN[x, y].ToString());
      }
    }
  }
}
公共部分类表单1:表单{
字符串[,]matrizN=新字符串[3,3];
int n=0;
int m=0;
公共表格1(){
初始化组件();
}
私有无效btn\u Acpt\u单击(对象发送方,事件参数e){
if(n<3){
if(m<3){
matrizN[n,m]=txt_Val.Text;
m++;
}否则{
m=0;
n++;
matrizN[n,m]=txt_Val.Text;
}
txt_Val.Clear();
txt_Val.Focus();
}否则{
MessageBox.Show(“限制9个名称”);
}
}
私有无效btn\u或单击(对象发送者,事件参数e){
对于(int x=0;x<3;x++){
对于(int y=0;y<3;y++){
Show(matrizN[x,y].ToString());
}
}
}
私有无效btn\u Asc\u单击(对象发送者,事件参数e){
数组.Sort(matrizN);
对于(int x=0;x<3;x++){
对于(int y=0;y<3;y++){
Show(matrizN[x,y].ToString());
}
}
}
}
非常感谢您的帮助,但如果您能简单一点,我会更喜欢的。 旁注:在我的
Acpt
按钮中,当我添加了9个以上的名称时,我会得到一个错误,即使我添加了一个
else
,应该能够防止错误。有什么建议吗

旁注:在我的Acpt按钮中,由于某种原因,我可以添加超过 9个名称,即使我添加了一个应该 我们有能力防止这种情况

if(n<3)
{
if(m<3)

它应该是n一个排序的2D数组应该是什么样的?我不明白数组的第二维度的原因是什么?这像名字,姓吗?因为我只在文本框中看到。对于添加9个以上的名字的问题:你的第10个名字不会触发外部的else,因为n=2和m=2。它击中了内部的else。在ge中总的来说,作为一个建议,忘记.NET中的多维数组。锯齿数组是可以的,但多维数组是一个不受支持的不完整的痛苦。是的,你是对的,我不需要二维数组,我尝试了一维数组,我得到了它的工作。我想我是在尝试做二维数组,因为我们了解了上一节课,我现在意识到我甚至不需要它。对不起关于愚蠢的问题伙计们编辑:我可能会尝试B.K谢谢你的帮助,但我想我会暂时坚持1d谢谢你的帮助,虽然我现在不需要这个,但我会确保在未来的项目中记住这一点。:)我会把这个问题作为答案,因为我已经得到了它的工作
if (n < 3)
        {
            if (m < 3)
for(int i = 0; i < matrizN.Length; i++)
{
    Array.Sort(matrizN[i]);
    for (int j = 0; j < matrizN[i][j]; j++)
    {
        Console.WriteLine(matrizN[i][j]);
    }
}