C# Lambda表达式,用于获取单个列的数据,其中的值为;在;
我有一个SQL表“tablex”,有3列(a、B、C) 下面的lambada表达式返回10行C# Lambda表达式,用于获取单个列的数据,其中的值为;在;,c#,lambda,C#,Lambda,我有一个SQL表“tablex”,有3列(a、B、C) 下面的lambada表达式返回10行 var versions = versionRepository.GetVersions(a.id) 10个结果中的B列将数据存储为:1,2,3,4,5,6,7,8,9,10 有人能帮我使用lambda表达式,只得到(2,3,4)中b的C列的结果吗 因此,我应该只获取3行C列数据。使用Where扩展方法过滤数据,使用选择扩展方法仅获取C属性: var versions = versionRepos
var versions = versionRepository.GetVersions(a.id)
10个结果中的B列将数据存储为:1,2,3,4,5,6,7,8,9,10
有人能帮我使用lambda表达式,只得到(2,3,4)中b的C列的结果吗
因此,我应该只获取3行C列数据。使用
Where
扩展方法过滤数据,使用选择扩展方法仅获取C
属性:
var versions =
versionRepository.GetVersions(a.id)
.Where(v => v.B >= 2 && v.B <= 4)
.Select(v => v.C);
var版本=
versionRepository.GetVersions(a.id)
其中(v=>v.B>=2和v.B v.C);
(部分v=>v.C
是lambda表达式的一个示例。)您可以使用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);
List id=新列表{2,3,4,10};
变量版本=
versionRepository.GetVersions(a.id)
其中(v=>ids.Contains(v.B))
.选择(v=>v.C);
这里的诀窍是将其颠倒过来,而不是检查B是否是所需的数字之一,只需检查数字列表是否包含B。您确定该列名为A.id
,其中有一个点吗?如果是这样的话,这是一个非常令人困惑的名字。你真的不清楚你的意思是什么——特别是像“C列的结果,其中b在2,3,4中”。你对B栏还是C栏感兴趣?您可以按整行过滤,而不是按列过滤。样本数据和预期的输入/输出将有所帮助。还要注意的是,它是一个lambda表达式,而不是lambda。lambda表达式是在鲜为人知的Visual Studio舞蹈版本中使用的。你也许可以在当地的投币商场找到它……lambda是当你得到一个lambda表达式时你所跳的舞蹈;-)这里有一个小的介绍,解释了这个术语的来源,以及它是如何与编程相关的——谢谢。我刚刚意识到我还需要b栏的10个。我如何修改上述内容以同时选择b=10的位置。或者我想问的是,如何从(2,3,4,10)@user1204195中的B列中选择值:只需将其添加到条件:。其中(v=>(v.B>=2&&v.B@user1204195:是否包含Select
调用?是的,我已包含Select调用。@user1204195:如果包含,则结果仅包含C
属性中的值。