2

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 行しか取得できません。

4

2 に答える 2

15

拡張メソッドを使用しWhereてデータをフィルタリングし、拡張メソッドを使用してプロパティSelectのみを取得します。C

var versions =
  versionRepository.GetVersions(a.id)
  .Where(v => v.B >= 2 && v.B <= 4)
  .Select(v => v.C);

(部分v => v.Cはラムダ式の例です。)

于 2012-06-30T21:02:45.350 に答える
2

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 が含まれているかどうかを確認するだけで、逆にすることです。

于 2012-06-30T21:17:16.470 に答える