我有一个DataTable,其中有2列作为分号分隔的列表。我需要一种方法来解析这些列中的数据并将它们“匹配”在一起。例如,让我们以James Jo的信息为例-我希望它在提取时看起来像这样:
SH11 - Shirt
HA22 - Hat
SO33 - Socks
这是我的DataTable设置,所有的都是字符串值。
DataTable table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Columns.Add("ItemsSold", typeof(string));
table.Columns.Add("ItemIDs, typeof(string));
table.Rows.Add("James Jo", "Shirt; Hat; Socks;", "SH11; HA22; SO33");
table.Rows.Add("Jack Bo", "Pants; Scarf;", "PA44; SC55");
答案 0 :(得分:1)
1000次中有999次(有些甚至会经常说),使用分隔字符串表示数据是错误的方式,就像这样做是错误的。
理想情况下,您将有一个表用于项目,一个表用于名称以及一个表来表示它们之间的关系。
但是,假设您坚持使用当前的设计,则可以使用string.Split()
方法从每个表单元格中的数据获取数组来获得所需的结果,如下所示:
var itemsSold = table.Rows[0].Field<string>("ItemsSold").Split(new string[] {", "}, StringSplitOptions.RemoveEmptyEntries);
var ItemIDs = table.Rows[0].Field<string>("ItemIDs").Split(new string[] {", "}, StringSplitOptions.RemoveEmptyEntries);
然后您将有两个字符串数组-一个包含"ItemsSold"
的值,另一个包含"ItemIDs"
的值。