0

我有一个类似的清单

var listDataDemo = model.Jobs.ToList();

listDataDemo 有如下数据

Count = 13
[0]: {PaymentItemModel}

当我输入即时窗口时

listData.FirstOrDefault()

它给出了结果

Amount: 0
Date: {1/01/0001 12:00:00 AM}
Method: "PayPal"
PayerName: null
PayerNumber: null
PaymentDetailType: Payment
TransactionId: null

但是当我写(我班上的代码)

var demoVal = listData.FirstOrDefault(p=>p.Method=="PayPal")

The name 'demoVal' does not exist in the current context(no value)

如何从 LIST 中获取值。

请帮我。

4

3 回答 3

1

即兴发挥,您提供给 FirstOrDefault 以过滤结果的谓词看起来有语法错误:(p=>p.Method="PayPal")应该是(p=>p.Method=="PayPal")

当然,为了完整起见,这可能是一个错字:

'=' 是一个赋值运算符,当你想给一个变量赋值时。

'==' 是一个相等比较运算符,用于当您想要测试值之间的相等性并获得 'true' 或 'false' 时。


编辑以回答错字...

你在使用实体框架吗?EF 也有 FirstOrDefault 的扩展方法,除了 filter 参数是一个 SQL 查询。如果您使用的是 EF,那么您可能会遗漏以下内容:

using System.Collections.Generic;
using System.Linq;
于 2013-05-31T05:30:46.537 回答
1

下面的代码对我来说工作正常。看看:

        List<test> testList = new List<test>();

        testDB testObj = new testDB();
        testList = testObj.fn_getAll();
        var abc = testList.FirstOrDefault(a => a.Id == 3);

而您只是尝试更改变量的名称,这可能会导致问题。

我希望它会帮助你.. :)

于 2013-05-31T05:35:22.023 回答
0

看起来您调用的谓词FirstOrDefault有错字。您想要==比较,而不是=分配。

于 2013-05-31T05:32:08.630 回答