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

以下のコードは私にとってはうまくいきます。ちょっと見てください:

        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 に答える
1

結果をフィルタリングするために FirstOrDefault に提供している述語には、構文エラーがあるように見えます: (p=>p.Method="PayPal")should be (p=>p.Method=="PayPal")

完全を期すために、これはおそらくタイプミスであると認められました。

「=」は代入演算子で、変数に値を代入する場合に使用します。

「==」は等値比較演算子で、値が等しいかどうかをテストして「true」または「false」を取得する場合に使用します。


タイプミスを超えて答えるように編集されました...

Entity Framework を使用していますか? EF には、フィルター パラメーターが SQL クエリであることを除いて、FirstOrDefault の拡張メソッドもあります。EF を使用している場合は、次のものが不足している可能性があります。

using System.Collections.Generic;
using System.Linq;
于 2013-05-31T05:30:46.537 に答える
0

への呼び出しの述語にFirstOrDefaultタイプミスがあるようです。割り当て==ではなく、比較が必要です。=

于 2013-05-31T05:32:08.630 に答える