此LINQ表达式无效:
dt.AsEnumerable().ToDictionary<Int64, List<string>> (
dtRow => dtRow.Field<Int64>("CodeVal_1"),
new List<string> {
dtRow => dtRow.Field<string>("CodeVal_2"),
dtRow => dtRow.Field<string>("CountryCode")
}
);
dt
是DataTable
,我添加了对DataSetExtensions
的引用。
这里是完整的代码
using (DataSet dsIps = DbConnection.db_Select_Query("use mydb select * from tblCountryCodes"))
{
using (DataTable dt = dsIps.Tables[0])
{
dt.AsEnumerable().ToDictionary<Int64, List<string>>(
dtRow => dtRow.Field<Int64>("CodeVal_1"),
new List<string> {
dtRow => dtRow.Field<string>("CodeVal_2"),
dtRow => dtRow.Field<string>("CountryCode")
}
);
}
}
错误列表
答案 0 :(得分:4)
根据附加信息,问题在于您没有将正确的参数传递给ToDictionary
。它需要两个lambda,而不是lambda和List<>
。
这是固定代码的第一步:
dt.AsEnumerable().ToDictionary(
dtRow => dtRow.Field<Int64>("CodeVal_1"),
dtRow => new List<string> {
dtRow.Field<string>("CodeVal_2"),
dtRow.Field<string>("CountryCode")
}
);
编辑:使用错误版本的ToDictionary
修复。