我有一个类似这样的数据表:
| 色谱柱1|色谱柱2|色谱柱3|
| - ------|- ------|- ------|
| 姓名1|代码111|小行星12550|
| 姓名2|代码112|小行星12551|
| 姓名3|代码113|小行星12552|
| 姓名4|代码114|小行星12553|
我想把它转换成一个字典,其中第一列是键,第二列小写字母和第三列的组合是值。
预期结果:
| 键|价值|
| - ------|- ------|
| 姓名1|代码111_12550|
| 姓名2|代码112_12551|
| 姓名3|代码113_12552|
| 姓名4|代码114_12553|
这是我的代码:
DataTable dt = new DataTable();
dt.Columns.Add("Column1");
dt.Columns.Add("Column2");
dt.Columns.Add("Column3");
dt.Rows.Add("Name1", "Code111", 12550);
dt.Rows.Add("Name2", "Code112", 12551);
dt.Rows.Add("Name3", "Code113", 12553);
dt.Rows.Add("Name4", "Code114", 12554);
Dictionary<string,string> dic = new Dictionary<string,string>();
for (int i = 0; i < dt.Rows.Count; i++)
{
string _k = dt.Rows[i][0].ToString();
string _v = dt.Rows[i][1].ToString().ToLower()+ "_" +
dt.Rows[i][2].ToString();
dic.Add(_k, _v);
}
有没有更好的方法把数据表转换成字典?例如,我可以用Linq吗?
2条答案
按热度按时间6jygbczu1#
您可以使用linq.enumerable.todictionary将
DataTable
转换为Dictionary
:6ovsh4lw2#
由于.NET 6是受支持的最早的.NET核心版本,因此可以使用范围将代码缩减为:
如果值需要小写,可以在连接后调用
ToLower()
。