-9

此 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")
                }
            );
        }
    }

错误列表在此处输入图像描述

4

1 回答 1

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.

于 2012-12-23T02:49:48.427 回答