时间:2019-03-17 标签:c#linqconditionalunion

标签 c# .net linq

嗨,我有以下代码,并且只想在条件为真时创建每个联合。 我知道我可以编写 if else 的选择,但想知道是否有更灵活的 Linq 方式!?

        //join the list into one and sort by seqnumber
      SegmentList = Alist.Cast<BaseSegment>()
     .Union(BList.Cast<BaseSegment>()).Union(CList.Cast<BaseSegment>())
     .OrderBy(item => item.SegSeqNumber).ToList();

因此,鉴于上述情况,如果 ATest =true,如果 BTest && CTest 为 true,我如何仅包含 Alist,如果 BTest && CTest 为 true,我如何仅包含 BList 和 Clist

谢谢

最佳答案

要使用复选框以 LINQ 风格的方式执行此操作,例如:

SegmentList = Alist.Where(i => checkbox1.IsChecked).Cast<BaseSegment>()
.Union(BList.Where(i => checkbox2.IsChecked).Cast<BaseSegment>())
.Union(CList.Where(i => checkbox3.IsChecked).Cast<BaseSegment>())
.OrderBy(item => item.SegSeqNumber).ToList();

可以。但我认为这不是很容易理解,也不是很有效。

关于时间:2019-03-17 标签:c#linqconditionalunion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3905512/

相关文章:

c# - 有没有一种方法可以在不逐行读取的情况下检索文件的最后一个字符?

c# - 意外错误 : LINQ to Entities does not recognize the method 'System.String DecryptValue(Byte[], System.String)' method

c# - 计算我的 ASP.NET MVC 项目中来自不同部门的相同产品名称的总和

c# - 使用 BindingSource 绑定(bind)到嵌套属性 - 或者,使实体可绑定(bind)

c# - 如何在 C# 中计算某个类的 <span> 实例?

c# - WEB API & BL关系

c# - 合并2个配置文件

c# - MemoryCache.Set 返回删除的缓存项

c# - 需要简单的 linq

c# - 如何创建对现有对象的引用?特别是对于 Get-Service 对象之一?