LINQ 的 Join() 方法用于将两个数据源(表)中的元素进行关联。\n\nJoin() 方法的语法如下:\n\n\npublic static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult> (\n this IEnumerable<TOuter> outer,\n IEnumerable<TInner> inner,\n Func<TOuter, TKey> outerKeySelector,\n Func<TInner, TKey> innerKeySelector,\n Func<TOuter, TInner, TResult> resultSelector\n)\n\n\n参数说明:\n- outer:要连接的第一个数据源(表)。\n- inner:要连接的第二个数据源(表)。\n- outerKeySelector:用于从第一个数据源(表)的元素中提取关联键的函数。\n- innerKeySelector:用于从第二个数据源(表)的元素中提取关联键的函数。\n- resultSelector:用于创建结果元素的函数,接受从两个数据源(表)中关联的元素作为输入。\n\n示例代码:\ncsharp\nclass Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n}\n\nclass Pet\n{\n public string Name { get; set; }\n public string Owner { get; set; }\n}\n\nList<Person> people = new List<Person>\n{\n new Person { Name = "John", Age = 20 },\n new Person { Name = "Mary", Age = 25 },\n new Person { Name = "David", Age = 30 }\n};\n\nList<Pet> pets = new List<Pet>\n{\n new Pet { Name = "Max", Owner = "John" },\n new Pet { Name = "Bella", Owner = "Mary" },\n new Pet { Name = "Charlie", Owner = "John" }\n};\n\nvar query = people.Join(\n pets,\n person => person.Name,\n pet => pet.Owner,\n (person, pet) => new { OwnerName = person.Name, PetName = pet.Name }\n);\n\nforeach (var result in query)\n{\n Console.WriteLine($"Owner: {result.OwnerName}, Pet: {result.PetName}");\n}\n\n输出结果:\n\nOwner: John, Pet: Max\nOwner: John, Pet: Charlie\nOwner: Mary, Pet: Bella\n\n\n在上面的示例中,我们使用 Join() 方法将 Person 类和 Pet 类关联起来。通过 Owner 字段和 Name 字段进行关联。最终,我们创建了一个新的匿名类型,包含 OwnerName 和 PetName 字段,并输出结果。

LINQ Join() 方法:详解及示例 - C# 数据关联

原文地址: https://www.cveoy.top/t/topic/qdV8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录