簡體   English   中英

從另一個其他兩個列表中的列表中刪除對象項目

[英]Remove Objects items from a list that are in another other two lists

我是 C# 新手,我正在更新以弄亂列表。 我目前有這個事件對象。 從中,我需要生成一個新的字符串列表。 我必須刪除 Data3 上以及 Data1 和 Data2 上的所有電子郵件。

{
  "event": 
    {
      "userData": [
        {
          "Data1": [
            {
              "comentario": "",
              "email": "erick@gmail.com",
              "name": "erick"
            },
            {
              "comentario": "",
              "email": "isa@gmail.com",
              "name": "isa"
            }
          ],
          "Data2": [
            {
              "comentario": "",
              "email": "erick@gmail.com",
              "name": "erick"
            }
          ],
          "Data3": [
            {
              "comentario": "",
              "email": "erick@gmail.com",
              "name": "erick"
            },
            {
              "comentario": "",
              "email": "joseph@gmail.com",
              "name": "joseph"
            },
            {
              "comentario": "",
              "email": "ju@gmail.com",
              "name": "ju"
            },
            {
              "comentario": "",
              "email": "isa@gmail.com",
              "name": "isa"
            }
          ]
        }
      ]
    }
}

最終結果將是這樣的:

新列表 = ["joseph@gmail.com", "ju@gmail.com"]

由於“erick@gmail.com”和“isa@gmail.com”在 Data1 和 Data2 中,我應該從 Data3 中刪除它們,只返回其他的。

如果要從列表中排除在另一個列表中找到的元素,只需使用

var result= list1.Except(list2);

您可以使用前面答案中提到的Enumerable.Except方法。 下面給出一個完整的例子:

List<String> list1 = new List<string>();
list1.Add("Apple");
list1.Add("Ball");
list1.Add("Car");

List<String> list2 = new List<string>();
list2.Add("Cat");
list2.Add("Dog");
list2.Add("Mouse");
list2.Add("Ball");

List<String> newList = list2.Except(list1).ToList();//don't forget to parse new list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM