求一个去重linq 语句

zmidl 2020-03-18 10:57:20
数据:
name class
张三 1
张三 1
李四 2
张三 2
张三 2

预期结果:
name class
张三 1
张三 1
李四 2
张三 2

class 为1的情况下不去重 只对class为2的去重。求这样的linq语句
...全文
3025 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bug小能手-tp 2020-11-21
  • 打赏
  • 举报
回复
groupby,就够了,
  • 打赏
  • 举报
回复
lambda 条件1 union 条件2去重,没毛病 ,思路就是这么个思路,咋写都差不多
            var q = (
             from c in list
             where c.Class == 1
             select new { c.Name, c.Class }
            ).Concat(
            (from c in list
             where c.Class == 2
             select new { c.Name, c.Class }).Distinct());
  • 打赏
  • 举报
回复
用distinct
轻箬笠 2020-04-15
  • 打赏
  • 举报
回复
竟然有linq专区。
正怒月神 2020-03-18
  • 打赏
  • 举报
回复
public static void Main(string[] args)
        {
            var list = new List<User>() { 
                new User(){Name="张三",Age=1 },
                new User(){Name="张三",Age=1 },
                new User(){Name="李四",Age=2 },
                new User(){Name="张三",Age=2 },
                new User(){Name="张三",Age=2 },
            };

            var q = list.Where(x => x.Age == 1).Union(list.Where(x => x.Age == 2).Distinct(new userCompare())).ToList();
            q.ForEach(x => Console.WriteLine(x.Name + ":" + x.Age));
            Console.ReadLine();
        }

        class userCompare : IEqualityComparer<User>
        {
            public bool Equals(User x, User y)
            {
                return x.Name.Equals(y.Name)&&x.Age.Equals(y.Age);
            }

            public int GetHashCode(User obj)
            {
                return (obj.Name+obj.Age).GetHashCode();
            }
        }

        public class User
        {
            public int ID { get; set; }
            public string Name { get; set; }
            public int Age { get; set; }
            public bool? IsChild { get; set; }

            public User Clone()
            {
                return (User)this.MemberwiseClone();
            }
        }
正怒月神 2020-03-18
  • 打赏
  • 举报
回复
union啊。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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