【发布时间】:2017-08-16 20:13:26
【问题描述】:
我有一个文本文件列表,我正在阅读每个文件,并在拆分选项的帮助下创建一个包含 5 列(无 ID)的数据表(名称:tbl)。
此外,创建一个只有 Column1 和 Column5 的数据表并将其转换为字典,因为 column1 将是键,column5 将是它的值。
以下是代码:
string[] selectedColumns = new[] { "Column1", "Column5" };
DataTable dt = new DataView(tbl).ToTable(false, selectedColumns);
dict = dt.AsEnumerable().ToDictionary<DataRow, string, string>(row => row[0].ToString(),
row => row[1].ToString());
错误: $exception {"已添加具有相同键的项目。"} System.Exception {System.ArgumentException}
由于重复而出现的错误。
dict = dt.AsEnumerable().Distinct().ToDictionary<DataRow, string, string>(row => row[0].ToString(),
row => row[1].ToString());
结果相同。
dict = dt.AsEnumerable().ToDictionary<DataRow, string, string>(row => row[0].ToString(),
row => row[1].ToString()).Distinct();
引发错误: 错误 1 无法将类型“System.Collections.Generic.IEnumerable>”隐式转换为“System.Collections.Generic.Dictionary”。存在显式转换(您是否缺少演员表?)
如何避免重复并仅将不同的值放入字典字典中?
提前致谢。
【问题讨论】:
-
您是否保证第 1 列中的给定值在第 5 列中始终具有相同的值?
标签: c# dictionary datatable