如何找到 C# 中一個列表中不在另一個列表中的專案?
LINQ Except 運算子屬於 LINQ 中的集合運算子類別
Except() 方法需要兩個集合,並查詢不存在於第二個集合中的元素
除擴充套件外,該方法不會針對複雜型別集合返回正確的結果。
使用 Except() 方法的示例
using System;
using System.Collections.Generic;
using System.Linq;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
List<string> animalsList1 = new List<string> {
"tiger", "lion", "dog"
};
Console.WriteLine($"Values in List1:");
foreach (var val in animalsList1) {
Console.WriteLine($"{val}");
}
List<string> animalsList2 = new List<string> {
"tiger", "cat", "deer"
};
Console.WriteLine($"Values in List2:");
foreach (var val in animalsList2) {
Console.WriteLine($"{val}");
}
var animalsList3 = animalsList1.Except(animalsList2);
Console.WriteLine($"Value in List1 that are not in List2:");
foreach (var val in animalsList3) {
Console.WriteLine($"{val}");
}
Console.ReadLine();
}
}
}輸出
以上程式碼的輸出為
Values in List1: tiger lion dog Values in List2: tiger cat deer Value in List1 that are not in List2: lion dog
使用 Where 子句的示例
using System;
using System.Collections.Generic;
using System.Linq;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
List<Fruit> fruitsList1 = new List<Fruit> {
new Fruit {
Name = "Apple",
Size = "Small"
},
new Fruit {
Name = "Orange",
Size = "Small"
}
};
Console.WriteLine($"Values in List1:");
foreach (var val in fruitsList1) {
Console.WriteLine($"{val.Name}");
}
List<Fruit> fruitsList2 = new List<Fruit> {
new Fruit {
Name = "Apple",
Size = "Small"
},
new Fruit {
Name = "Mango",
Size = "Small"
}
};
Console.WriteLine($"Values in List2:");
foreach (var val in fruitsList2) {
Console.WriteLine($"{val.Name}");
}
var fruitsList3 = fruitsList1.Where(f1 => fruitsList2.All(f2 => f2.Name != f1.Name));
Console.WriteLine($"Values in List1 that are not in List2:");
foreach (var val in fruitsList3) {
Console.WriteLine($"{val.Name}");
}
Console.ReadLine();
}
}
public class Fruit {
public string Name { get; set; }
public string Size { get; set; }
}
}輸出
以上程式碼的輸出為
Values in List1: Apple Orange Values in List2: Apple Mango Values in List1 that are not in List2: Orange
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP