嗨,我有以下代码,并且只想在条件为真时创建每个联合。 我知道我可以编写 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/