输入数组比 txt 数据集中 table 中的列长

Input array is longer than the column in the table in txt dataset

我是 C# 的新手,我想知道如何从 txt 数据集中提取数据并将其放入 C# 数据集中并使用它执行一些计算。

这就是我的数据集的样子

5.982   0.228   0.237   0.221   0.222   0.527
2.13    0.262   0.273   0.251   0.254   0.427   

这是我的业余代码:

string file = "D://test1.txt";
string tableName = "table";
string delimiter = "\t";

DataSet ds = new DataSet();
StreamReader s = new StreamReader(file);

ds.Tables.Add(tableName);

string AllData = s.ReadToEnd();

foreach (string r in rows)
{
    string[] items = r.Split(delimiter.ToCharArray());
    ds.Tables[TableName].Rows.Add(items);
}

int MaxRows = ds.Tables[0].Rows.Count;
Console.Write(MaxRows);
Console.ReadLine();

总是显示错误:

Input array is longer than the number of columns in this table.

您必须先添加一些列来保存数据。类似于:

var tableName = "MyTableName";
DataTable table = ds.Tables.Add(tableName);

table.Columns.Add("firstColumnName", typeof(string));
table.Columns.Add("secondColumnName", typeof(string));
table.Columns.Add("thirdColumnName", typeof(string));
table.Columns.Add("fourthColumnName", typeof(string));
table.Columns.Add("fifthColumnName", typeof(string));
table.Columns.Add("sixthColumnName", typeof(string));

作为如何向此添加行的示例table:

const string dataFilePath = @"d:\public\temp\data.txt";
string[] fileData = File.ReadAllLines(dataFilePath);
var numColumns = table.Columns.Count;

foreach (string dataItem in fileData)
{
    var items = dataItem.Split(delimiter.ToCharArray()).Take(numColumns);
    table.Rows.Add(items);
}