2013-12-15 61 views
1
//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}; 

基本上我想要删除的arent ID 2或3,从我的主人名单使用LINQ to删除列表中的项目没有在另一个列表

+1

LINQ的所有项目apear用于查询数据,我不认为实际上可以修改底层的收藏。你可以做的是有一个'.Where'子句,并创建一个适合你的标准的新集合。 –

回答

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(); 
} 
+0

谢谢安德烈。这会好吗? (i => keepList.Contains(i.id))。ToList(); – PercivalMcGullicuddy

+1

是的,那可以。 –

+0

我编辑过,因此更好 –

相关问题