我有一个包含3列(A、B、C )的SQL表"tablex“。
下面的lambada表达式返回10行。
var versions = versionRepository.GetVersions(a.id)10个结果的B列将数据存储为:1、2、3、4、5、6、7、8、9、10
谁能帮我解决lambda表达式,只得到C列的结果,其中b在(2,3,4)中。
所以我应该只得到3行C列数据。
发布于 2012-07-01 05:02:45
使用Where扩展方法筛选数据,使用Select扩展方法仅获取C属性:
var versions =
versionRepository.GetVersions(a.id)
.Where(v => v.B >= 2 && v.B <= 4)
.Select(v => v.C);( v => v.C部分是lambda表达式的一个示例。)
发布于 2012-07-01 05:17:16
您可以使用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是否是所需的数字之一,只需检查数字列表是否包含B即可。
https://stackoverflow.com/questions/11277606
复制相似问题