gpt4 book ai didi

c# - LINQ where条件过滤

转载 作者:太空狗 更新时间:2023-10-29 20:52:55 25 4
gpt4 key购买 nike

String Sex = getSex(); // return M or F
String[] members = getMembers(); // return member codes in array or null
//if members array is null, no filtering for member codes
var query = from tb in MemberTable
where tb.sex.Equals(Sex) &&
(members != null ? members.Contains(tb.membercode) : true)
select tb;

代码没有返回正确的结果。无论 members[] 是什么,它都会返回所有成员。

其实原来的LINQ很复杂所以如果有其他可能的解决方案,我不想写如下:

if (members == null){ /*LINQ1*/ }
else { /*LINQ2*/ }

这不是一个好的编码风格。有什么解决这个问题的建议吗?

最佳答案

var query = MemberTable.Where(x=>x.sex.Equals(Sex))

if (members != null)
query = query.Where(x=>members.Contains(x.membercode))

//use your query
query.ToList();

var query = from tb in MemberTable
where tb.sex.Equals(Sex) &&
(members == null || members.Contains(tb.membercode))
select tb;

我更喜欢第一个。

关于c# - LINQ where条件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20366189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com