2013-12-15 97 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

我編輯過,因此更好 –

相關問題