如何判断一个LIST中是否有重复的值?

jhdxhj 2013-06-18 10:51:38
List<ListClass> lst = new List<ListClass>();
其中ListClass是一个类的实例化对象,这个类包括:
姓名,ID两个属性
如何判断lst中是否存在 姓名重复的值?
...全文
8066 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CqCoder 2013-06-18
  • 打赏
  • 举报
回复

  public static class DistinctExtensions
    {
        public static IEnumerable<T> Distinct<T, V>(this IEnumerable<T> source, Func<T, V> keySelector)
        {
            return source.Distinct(new CommonEqualityComparer<T, V>(keySelector));
        }

        public static IEnumerable<T> Distinct<T, V>(this IEnumerable<T> source, Func<T, V> keySelector, IEqualityComparer<V> comparer)
        {
            return source.Distinct(new CommonEqualityComparer<T, V>(keySelector, comparer));
        }
    }
    public class CommonEqualityComparer<T, V> : IEqualityComparer<T>
    {
        private Func<T, V> keySelector;
        private IEqualityComparer<V> comparer;

        public CommonEqualityComparer(Func<T, V> keySelector, IEqualityComparer<V> comparer)
        {
            this.keySelector = keySelector;
            this.comparer = comparer;
        }

        public CommonEqualityComparer(Func<T, V> keySelector)
            : this(keySelector, EqualityComparer<V>.Default)
        { }

        public bool Equals(T x, T y)
        {
            return comparer.Equals(keySelector(x), keySelector(y));
        }

        public int GetHashCode(T obj)
        {
            return comparer.GetHashCode(keySelector(obj));
        }
    }
    //定义
    public class Person
    {
        public int id { set; get; }
        public string name { set; get; }     
    }

调用:
 Person pa = new Person();
                pa.id = 1;
                pa.name = "zxy";
                Person pb = new Person();
                pb.id = 2;
                pb.name = "hjt";
                Person pc = new Person();
                pc.id = 3;
                pc.name = "zxy";

                List<Person> list = new List<Person>();
                list.Add(pa);
                list.Add(pb);
                list.Add(pc);
                list = list.Distinct(p => p.name, StringComparer.CurrentCultureIgnoreCase).ToList();
                foreach (var value in list)
                {
                    Response.Write(value.name + "<br />");
                }
CqCoder 2013-06-18
  • 打赏
  • 举报
回复

using System.Linq;
             List<int> list = new List<int>();
                list.Add(1);
                list.Add(3);
                list.Add(5);
                list.Add(1);
                list.Add(5);              
                list=list.Distinct().ToList();
                foreach (var value in list)
                {
                    Response.Write(value + "<br />");
                }

  • 打赏
  • 举报
回复
哈希表解决 。
五更琉璃 2013-06-18
  • 打赏
  • 举报
回复
lst.ToDictionary(o => { return o.name; }); 不出异常就没重复
q107770540 2013-06-18
  • 打赏
  • 举报
回复
bool b= lst.GroupBy(l=>l.Name).Where(g=>g.Count()>1).Count()>0;

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧