如何按"#"分割字符串并将结果存储在DataTable中
本文关键字:quot 存储 结果 DataTable 字符 何按 分割 字符串 串并 | 更新日期: 2023-09-27 18:11:29
我有这个字符串:
1#3.doc#0.036/n
2#1.doc#0.026/n
我想在#
上分割它,并将每一行放在DataTable内的单行中这样的:
1 3.doc 0.036
2 1.doc 0.026
我有一个这样的数据表:
DataTable table = new DataTable();
table.Columns.Add("Id", typeof(int));
table.Columns.Add("FileName", typeof(string));
table.Columns.Add("Content", typeof(string));
我该怎么做呢?
将字符串分成行,然后将这些行分成不同的部分。
您的字符串首先被新的行字符'n
分割成行数组string[]
。
然后用Split('#')
将这些行逐个分成几部分。
最后,这些部分与您创建的列一起添加到您的表中。
记住保存您创建的列,不要忘记将新创建的行添加到表中。
DataTable table = new DataTable();
DataColumn colID = table.Columns.Add("Id", typeof(int));
DataColumn colFileName = table.Columns.Add("FileName", typeof(string));
DataColumn colContent = table.Columns.Add("Content", typeof(string));
string source = "1#3.doc#0.036'n2#1.doc#0.026'n";
string[] lines = source.Split(''n');
foreach(var line in lines)
{
string[] split = line.Split('#');
DataRow row = table.NewRow();
row.SetField(colID, int.Parse(split[0]));
row.SetField(colFileName, split[1]);
row.SetField(colContent, split[2]);
table.Rows.Add(row);
}
用row["FileName"] = data
向行添加数据也是可能的,但是如果您更改列的名称,这将中断,而对列对象的引用由编译器和IDE检查。本文还解释了如何创建类型的DataTable,这是您可能想要做的事情。
,
var stuff = someString.Split(''n')
.Select(r => r.Split('#')
.Select(a => new
{
Id = int.Parse(a[0]),
FileName = a[1],
Content = a[2]
})
.ToList();
这将给您一个匿名类型的IList
。不值得放在DataTable
里