Toán tử LINQ Ngoại trừ nằm trong danh mục Đặt toán tử trong LINQ
Phương thức Ngoại trừ () yêu cầu hai tập hợp và tìm những phần tử không có trong tập hợp thứ hai
Ngoại trừ phương thức mở rộng không trả về kết quả chính xác cho tập hợp các kiểu phức tạp.
Ví dụ sử dụng phương thức Ngoại trừ ()
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 animalsList1) { 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(); } } }
Đầu ra
Đầu ra của đoạn mã trên là
Values in List1: tiger lion dog Values in List2: tiger lion dog Value in List1 that are not in List2: lion dog
Ví dụ sử dụng mệnh đề 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; } } }
Đầu ra
Đầu ra của đoạn mã trên là
Values in List1: Apple Orange Values in List2: Apple Mango Values in List1 that are not in List2: Orange