将字符串从文本文件转换为整数数组

Zai*_*wad 4 c# integer file

我编写此代码是为了以C#语言打开文本文件.文件中的每一行都包含五个数字,如

0    0    2    3     6

0    1    4    4     7

0    2    6    9     9

1    0    8    11    9

1    1    12   15    11

2    2    12   17    15
Run Code Online (Sandbox Code Playgroud)

数字和另一个之间的距离是一个选项卡问题是当您执行程序时出现此错误

Convert.ToInt32(t [j])中的输入字符串格式不正确

码:

string[] st = File.ReadAllLines("C:\\testing\\result.txt");
int[,] tmp = new int[st.Length - 1, 5];
for (int i = 1; i < st.Length; i++)
{

   string[] t = st[i].Split(new char[] { ' ' });
   int cnt = 0;
   for (int k = 0; k < t.Length; k++)
        if (t[k] != "")
           { t[cnt] = t[k]; cnt++; }
        for (int j = 0; j < 5; j++)
                tmp[i - 1, j] = Convert.ToInt32(t[j]);
 }
Run Code Online (Sandbox Code Playgroud)

我怎么能纠正这个?

Dmi*_*nko 8

我建议改变从集合类型2D阵列 int[,]锯齿状一个int[][],然后使用LINQ的:

 using System.Linq;

 ...

 int[][] data = File
   .ReadLines(@"C:\testing\result.txt")
   .Select(line => line
       // Uncomment this if you have empty lines to filter out:
       // .Where(line => !string.IsNullOrWhiteSpace(line)) 
      .Split(new char[] {'\t'}, StringSplitOptions.RemoveEmptyEntries)
      .Select(item => int.Parse(item))
      .ToArray())
   .ToArray();  
Run Code Online (Sandbox Code Playgroud)