繁体   English   中英

使用LINQ从列表中删除不在另一个列表中的项目

[英]Using LINQ to remove items from a list that do not apear in another list

//basic item class
public class myItem
{
   public Int Id { get; set;}
   public String Name { get; set;}
}

//My original List
List<myItem> masterList = new List<myItem>() { new myItem{id = 1, Name = "item 1"},
                                           new myItem{id = 2, Name = "item 2"},
                                           new myItem{id = 3, Name = "item 3"},
                                           new myItem{id = 4, Name = "item 4"}
                                          };

//List of ids of items I want to KEEP in my original list
List<int> keepList = new List<int>() {2,3};

基本上我想从我的主列表中删除所有不是id 2或3的项目

public class myItem
{
   public int id { get; set;}
   public String Name { get; set;}
}

void Main()
{
    //My original List
    List<myItem> masterList = new List<myItem>() { new myItem{ id = 1, Name = "item 1"},
                                            new myItem{id = 2, Name = "item 2"},
                                            new myItem{id = 3, Name = "item 3"},
                                            new myItem{id = 4, Name = "item 4"}
                                            };

    //List of ids of items I want to KEEP in my original list
    List<int> keepList = new List<int>() {2,3}; 

    // what you want
    masterList = masterList.Where(i => keepList.Contains(i.id)).ToList();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM