【问题标题】:save the input value in a 2dimentsion array将输入值保存在二维数组中
【发布时间】:2010-12-24 06:12:17
【问题描述】:

如何将用户在文本框中输入的数字保存在二维数组中?

例如:

我在文本框中有这个数字:45,78 现在我想像这样保存 45,32:array[0,0]=45 和 array[0,1]=78

我该怎么做呢?非常感谢

已编辑: 哦,当我在文本框中输入 1,2,3,4,5,6,7,8,9 时,它需要 [2,2]=56

 private void button10_Click(object sender, EventArgs e)
    {
  int matrixDimention = 2;
        int[,] intValues = new int[matrixDimention + 1, matrixDimention + 1];
        string[] splitValues = textBox9.Text.Split(',');
        for (int i = 0; i < splitValues.Length; i++)
            intValues[i % (matrixDimention + 1), i % (matrixDimention + 1)] = Convert.ToInt32(splitValues[i]);
        string a=intValues[2,2].ToString();
        MessageBox.Show(a);

   }

当我服用时:

string a=intValues[2,1].ToString();

它显示 0

【问题讨论】:

    标签: c# winforms arrays


    【解决方案1】:

    看看使用String.Split Method (Char[])和Convert.ToInt32 Method (String)

    类似

    string textBox = "45,78";
    int[,] values = new int[1,2];
    string[] textBoxSplit = textBox.Split(',');
    values[0, 0] = Convert.ToInt32(textBoxSplit[0]);
    values[0, 1] = Convert.ToInt32(textBoxSplit[1]);
    

    编辑

    使用 List 和 Linq 的示例

    string textBox = "45,78,1,2,3,4,5,6,7,8,9,10,11,12";
    List<int> list = new List<int>(textBox.Split(',').Select(x => Convert.ToInt32(x)));
    

    编辑 2

    使用 List 和 foreach 的冗长示例

    string textBox = "45,78,1,2,3,4,5,6,7,8,9,10,11,12";
    List<int> list2 = new List<int>();
    string[] splitVals = textBox.Split(',');
    foreach (string splitVal in splitVals)
        list2.Add(Convert.ToInt32(splitVal));
    

    编辑

    输入矩阵

    string textBox = "1,2,3,4,5,6,7,8,9";
    int matrixDimention = 2;
    int[,] intValues = new int[matrixDimention + 1, matrixDimention + 1];
    string[] splitValues = textBox.Split(',');
    for (int i = 0; i < splitValues.Length; i++)
        intValues[i/(matrixDimention + 1), i%(matrixDimention + 1)] = Convert.ToInt32(splitValues[i]);
    

    编辑

    跟着小白兔

    string textBox = "1,2,3,4,5,6,7,8,9";
    int matrixDimention = 2;
    int[,] intValues = new int[matrixDimention + 1, matrixDimention + 1];
    string[] splitValues = textBox.Split(',');
    for (int i = 0; i < splitValues.Length; i++)
        intValues[i/(matrixDimention + 1), i%(matrixDimention + 1)] = Convert.ToInt32(splitValues[i]);
    string displayString = "";
    for (int inner = 0; inner < intValues.GetLength(0); inner ++)
    {
        for (int outer = 0; outer < intValues.GetLength(1); outer++)
            displayString += String.Format("{0}\t", intValues[inner, outer]);
        displayString += Environment.NewLine;
    }
    MessageBox.Show(displayString);
    

    【讨论】:

    • 谢谢,我怎样才能用 for 循环做到这一点?例如,当我不知道用户输入了多少数字时
    • 你的意图到底是什么,为什么特别是一个数组?
    • 我的意思是在文本框中用户输入例如 50 个数字,那么我应该怎么做才能将其保存在二维数组中?
    • 你为什么要强制它进入一个数组,为什么不是一个列表?
    • 这是您第一次使用 C# 吗?还是为此而编程?你也得试试,我们不能哄你,否则你学不会任何东西
    【解决方案2】:

    假设数组是一个字符串数组,试试这个

    str[] input = textBox.Text.Split(',');
    
     if(input.Length > 1)
      {
         arr[0,0] = input[0];
    
         arr[0,1]= input[1];
    
       }
    

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 2021-08-29
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      相关资源
      最近更新 更多