3

私は以下のコードを持っています

List<string> esfa = NewTable.AsEnumerable().Where(row => row.Field<string>("Select")   
=="true").ToList();

コンパイル中にエラーが発生する

'System.Collections.Generic.List<System.Data.Datarow>'タイプを暗黙的に変換することはできません'System.Collections.Generic.List<string>'

助けてください。

4

2 に答える 2

8

はい、そうです。フィールドでフィルタリングしていますSelectが、そのフィルタリングの結果は依然として一連の行です。私はそれがあなたが望むものになることを期待します-結局のところ、あなたはSelectすべての行のフィールドの値を知っているので、それは興味深いことではありません...

私はあなたがおそらくただ欲しいと思います:

List<DataRow> rows = NewTable.AsEnumerable()
                             .Where(row => row.Field<string>("Select") == "true")
                             .ToList();

(このようにコードを複数行に分割すると、読みやすさが大幅に向上することに注意してください。)

他のフィールドの値が実際に必要な場合は、次のようなものが必要になる場合があります。

List<string> rows = NewTable.AsEnumerable()
                            .Where(row => row.Field<string>("Select") == "true")
                            .Select(row => row.Field<string>("LastName"))
                            .ToList();
于 2013-03-07T07:34:03.683 に答える
2

これを試して:

List<string> esfa = db.AsEnumerable()
                      .Where(row => row.Field<string>("Select") == "true")
                      .Select(s => s.Field<string>("Select"))
                      .ToList();

linq.Selectを使用すると、現在のコレクションの任意のプロパティを選択できます。「選択」列以外の有用なフィールドを使用してください。

于 2013-03-07T07:35:49.943 に答える