сохранить входное значение в массиве 2dimentsion - PullRequest
2 голосов
/ 24 декабря 2010

как я могу сохранить число, которое пользователь вводит в текстовое поле, в двухмерном массиве?

например:

У меня есть эти цифры в текстовом поле: 45,78 и теперь я хочу сохранить 45,32 следующим образом: массив [0,0] = 45 и массив [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

Ответы [ 2 ]

2 голосов
/ 24 декабря 2010

Взгляните на использование Метод String.Split (Char []) и Метод Convert.ToInt32 (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]);

EDIT

Пример использования 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)));

EDIT 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);
1 голос
/ 24 декабря 2010

попробуйте этот, предполагая, что массив является строковым массивом

str[] input = textBox.Text.Split(',');

 if(input.Length > 1)
  {
     arr[0,0] = input[0];

     arr[0,1]= input[1];

   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...