仅限Concat列出属性具有特定值的列表

时间:2014-02-01 18:17:06

标签: c# concatenation

我有2个清单。我只想连接LstNewItems,其中SItemRequestStatus =" Add" 怎么办呢?

在concat的下面两个列表完全列出,但这不是我需要的。

radGridViewFiles.DataSource = MyGlobals.ListOfItemsToControl
                              .Concat(MyGlobals.lstNewItems).ToList();

2 个答案:

答案 0 :(得分:3)

只需使用Enumerable.Where过滤收集:

MyGlobals.ListOfItemsToControl.Concat(
    MyGlobals.lstNewItems.Where(i => i.SItemRequestStatus == "Add")).ToList();

为了便于阅读,我会将其拆分为两行:

var itemsToAdd = MyGlobals.lstNewItems.Where(i => i.SItemRequestStatus == "Add");
radGridViewFiles.DataSource = MyGlobals.ListOfItemsToControl.Concat(itemsToAdd).ToList();

答案 1 :(得分:2)

您只需在Where集合上使用lstNewItems扩展程序即可返回已过滤的集合:

radGridViewFiles.DataSource = MyGlobals.ListOfItemsToControl
    .Concat(MyGlobals.lstNewItems.Where(x=>x.SItemRequestStatus == "Add"))
    .ToList();