3つの列(A、B、C)を持つSQLテーブル「tablex」があります。
次のラムダ式は 10 行を返します。
var versions = versionRepository.GetVersions(a.id)
10 個の結果の列 B には、データが 1,2,3,4,5,6,7,8,9,10 として格納されます。
誰かがラムダ式で私を助けて、(2,3,4) の b である列 C の結果のみを取得できますか。
したがって、列 C のデータは 3 行しか取得できません。
拡張メソッドを使用しWhere
てデータをフィルタリングし、拡張メソッドを使用してプロパティSelect
のみを取得します。C
var versions =
versionRepository.GetVersions(a.id)
.Where(v => v.B >= 2 && v.B <= 4)
.Select(v => v.C);
(部分v => v.C
はラムダ式の例です。)
Contains
探している数字のいずれかと一致するかどうかを確認するために使用できます。
List<int> ids = new List<int> { 2, 3, 4, 10 };
var versions =
versionRepository.GetVersions(a.id)
.Where(v => ids.Contains(v.B))
.Select(v => v.C);
ここでのトリックは、B が目的の数字の 1 つかどうかを確認する代わりに、数字のリストに B が含まれているかどうかを確認するだけで、逆にすることです。