在DataTable行中查找列

时间:2011-06-20 19:39:36

标签: linq-to-dataset

 Client_Payroll_Items.AsEnumerable().Select((row, index) => new {row, index})
    .Where(
            (x => x.row.Client_KEY == 3)   &&
            (x => x.row.Description == "401(k) % of Gross")
    )
    //.Where(x => x.row.Description == "401(k) % of Gross")
   .Select(x=> x.row.Payroll_item_calculation_type_KEY)
   .DefaultIfEmpty(-1)
   .First();

当我运行它时,我得到“操作员”&&&不能应用于'lambda expression'和'lambda expression'类型的操作数“错误。

 Client_Payroll_Items
    .AsEnumerable()
    .Select((row, index) => new {row, index})
    .Where(x => x.row.Client_KEY == 3)
    .Where(x => x.row.Description == "401(k) % of Gross")
    .Select(x=> x.row.Payroll_item_calculation_type_KEY)
    .DefaultIfEmpty(-1)
    .First()

最新的一个运行,我得到了我需要的东西。

问题 - 为什么第一个代码中的错误?

1 个答案:

答案 0 :(得分:1)

在您的第一个代码示例中,您多次指定了lambda x =>,这是不正确的:

.Where((x => x.row.Client_KEY == 3) && (x => x.row.Description == "401(k) % of Gross"))

它应该只被指定一次,并且可以根据需要在谓词中多次使用:

.Where(x => x.row.Client_KEY == 3 && x.row.Description == "401(k) % of Gross")