Maison > développement back-end > Tutoriel C#.Net > Comment utiliser LINQ et Lambda pour l'opération Join en C# ?

Comment utiliser LINQ et Lambda pour l'opération Join en C# ?

王林
Libérer: 2023-08-23 09:45:02
avant
1427 Les gens l'ont consulté

Comment utiliser LINQ et Lambda pour lopération Join en C# ?

La jointure interne renvoie uniquement les enregistrements ou les lignes qui correspondent ou existent dans les deux tables. Nous pouvons également appliquer des jointures sur plusieurs tables en fonction des conditions indiquées ci-dessous.

Si nous devons nous joindre en fonction de plusieurs conditions, utilisez des types anonymes.

Dans l'exemple ci-dessous, nous avons écrit deux méthodes qui peuvent être utilisées pour rejoindre Linq Ici les départements et les employés sont connectés

Exemple

class Program{
   static void Main(string[] args){
      var result =
      Employee.GetAllEmployees().Join(Department.GetAllDepartments(),
      e => e.DepartmentID,
      d => d.ID, (employee, department) => new{
         EmployeeName = employee.Name,
         DepartmentName = department.Name
      });
      foreach (var employee in result){
         Console.WriteLine(employee.EmployeeName + "\t" +
         employee.DepartmentName);
      }
      var result1 = from e in Employee.GetAllEmployees()
      join d in Department.GetAllDepartments()
      on e.DepartmentID equals d.ID
      select new{
         EmployeeName = e.Name,
         DepartmentName = d.Name
      };
      foreach (var employee in result1){
         Console.WriteLine(employee.EmployeeName + "\t" +
         employee.DepartmentName);
      }
      Console.ReadLine();
   }
}
public class Employee{
   public int ID { get; set; }
   public string Name { get; set; }
   public int DepartmentID { get; set; }
   public static List<Employee> GetAllEmployees(){
      return new List<Employee>(){
         new Employee { ID = 1, Name = "A", DepartmentID = 1 },
         new Employee { ID = 2, Name = "B", DepartmentID = 2 },
         new Employee { ID = 3, Name = "B", DepartmentID = 1 },
         new Employee { ID = 4, Name = "V", DepartmentID = 1 },
         new Employee { ID = 5, Name = "F", DepartmentID = 2 },
         new Employee { ID = 6, Name = "R", DepartmentID = 2 },
         new Employee { ID = 7, Name = "TT", DepartmentID = 1 },
         new Employee { ID = 8, Name = "YY", DepartmentID = 1 },
         new Employee { ID = 9, Name = "WW", DepartmentID = 2 },
         new Employee { ID = 10, Name = "QQ"}
      };
   }
}
public class Department{
   public int ID { get; set; }
   public string Name { get; set; }
   public static List<Department> GetAllDepartments(){
      return new List<Department>(){
         new Department { ID = 1, Name = "IT"},
         new Department { ID = 2, Name = "HR"},
         new Department { ID = 3, Name = "Contract"},
      };
   }
}
Copier après la connexion

Sortie

A IT
B HR
B IT
V IT
F HR
R HR
TT IT
YY IT
WW HR
A IT
B HR
B IT
V IT
F HR
R HR
TT IT
YY IT
WW HR
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal