linq去重复

本文介绍了如何使用C#语言对`Class1`类对象集合进行分组,并通过`GroupBy`方法和`First`方法获取每个URL对应的首项,最终输出前五个URL及对应的类名。

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    
    class Program
    {
        static void Main(string[] args)
        {
            List<Class1> list = new List<Class1>()
            {
                new Class1{ Name="a1", Url="http://www.baidu.com"},
                new Class1{ Name="a2", Url="http://www.baidu.com"},
                new Class1{ Name="a3", Url="http://www.google.com"}
            };

           // var result = list.Distinct(new Class1Compare()).Take(5).ToList();
            var result = list.GroupBy(x => x.Url).Select(x => x.First()).Take(5).ToList();
            result.ForEach(x => Console.WriteLine("A:{0},B:{1}",x.Name,x.Url));
            
            Console.ReadKey();
        }
    }

    public class Class1
    {
        public string Name { get; set; }
        public string Url { get; set; }
    }

    public class Class1Compare : IEqualityComparer<Class1>
    {
        public bool Equals(Class1 x, Class1 y)
        {
            return string.Equals(x.Url, y.Url);
        }

        public int GetHashCode(Class1 obj)
        {
            if (Object.ReferenceEquals(obj, null)) return 0;
            return obj.Url.GetHashCode();

        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值