gpt4 book ai didi

c# - 具有可选的 null 第二个参数的 LINQ 联合

转载 作者:太空狗 更新时间:2023-10-29 22:28:34 25 4
gpt4 key购买 nike

我有两个查询返回同类对象的集合,完成这两个查询后,我想合并它们。

var results = from t in All()
where t.Blah.Contains(blahblah)
select t;

var results2 = from t in All()
where t.blah2.contains(blahblah)
select t;

return results.Union(results2);

可能第二个查询可能不返回任何结果,并且为null

似乎如果我尝试对两者执行联合,如果第二个参数为 null,它将抛出 ArgumentNullException

显而易见的答案是只对第二个查询执行 .ToList() 以查看它是否包含任何内容。这个问题是我试图利用延迟执行并且不想在这个阶段实际对数据库执行查询。

有什么办法解决这个问题吗?

编辑 - 解决方案

var results2 = from t in All()
where t.blah2!=null && t.blah2.Contains(blahblah)
select t;

基本上,实际查询返回 null,因为我试图在 null 列表上执行 contains

感谢您的帮助!

最佳答案

results2 在执行查询时应该返回一个空列表而不是 null。您拥有的代码不应引起任何问题,并且在我能想到的所有简单情况下都应该可以正常工作。您能否提供会导致您试图解决的问题的输入?

关于c# - 具有可选的 null 第二个参数的 LINQ 联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5144198/

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