linq中join的用法

本文详细介绍了 LINQ 中的 Join 方法及其用法,并通过具体的 C# 示例代码展示了如何使用 Join 方法来连接两个集合并筛选结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

join方法

public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(
	this IEnumerable<TOuter> outer,
	IEnumerable<TInner> inner,
	Func<TOuter, TKey> outerKeySelector,
	Func<TInner, TKey> innerKeySelector,
	Func<TOuter, TInner, TResult> resultSelector
)
outerKeySelector是指要参与比较的第一个序列的元素,
innerKeySelector是指要参与比较的第二个序列的元素,
Func<TOuter, TInner, TResult> resultSelector常用一个匿名函数作为透射出来的结果集,
重载方法的最后一个参数IEqualityComparer<TKey>则是这两个元素的默认比较器。

示例代码:
class Program
    {
        static void Main(string[] args)
        {
            List<Person> persons = new List<Person> { new Person { Id = 1, Name = "John" }, new Person { Id = 2, Name = "Mark" }, new Person { Id = 3, Name = "Luke" } };
            List<PersonInfo> personInfos = new List<PersonInfo> { new PersonInfo() { Id = "0", PersonId = 1, Gender = "Male" }, new PersonInfo() { Id = "1", PersonId = 2, Gender = "Female" } };
            var query = persons.Join(personInfos, a => a.Id, b => b.
                PersonId,
                         (a, b) => new { PersonName = a.Name, PersonGender = b.Gender });
            foreach (var s in query)
            {
                Console.WriteLine(s.PersonGender + " " + s.PersonName);
            }
            Console.ReadKey();
        }


    }
    class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    class PersonInfo
    {
        public string Id { get; set; }
        public int PersonId { get; set; }
        public string Gender { get; set; }
    }

 

转载于:https://www.cnblogs.com/Benjamin/p/3224481.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值