Linq去除List的重复行

j_bunny 2013-01-25 10:31:56
Dc为多个string的集合,里面有Name,IssuerCode,LACode;
List<Dc>中想去掉多个IssuerCode和LACode重复的
比如:List<DC>里面有 peter,I001,LA001,LAcc
jenny,I001,LA001,LAcc
macus,I002,LA002,LAdd
joan,I002,LA002,LAdd
tina,I003,LA003,LAee
luna,I003,LA003,LAee
lucy,I003,LA003,LAee
想得到最后的结果是:peter,I001,LA001,LAcc
macus,I002,LA002,LAdd
tina,I003,LA003,LAee

List.Distinct又不行。菜鸟在此请教各位大侠,这个List该如何去除其中某几个重复项?
...全文
595 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
j_bunny 2013-01-25
  • 打赏
  • 举报
回复
引用 6 楼 Chinajiyong 的回复:
参考Distinct和SequenceEqual
这个有写过,但是要写多个类,所以在想更优方法。
j_bunny 2013-01-25
  • 打赏
  • 举报
回复
引用 5 楼 caozhy 的回复:
引用 2 楼 hjywyj 的回复:list=list.GroupBy(t=>t.issuercode).Select(t=>t.First()).ToList(); 这个最简单 var query = list.GroupBy(x => new { /*在这里放入你视为重复的列,用逗号分割,比如*/ x.IssuerCode, x.LACode }).Selec……
是的 这个很简单哦,都没想到还能这么写!感谢各位大侠
j_bunny 2013-01-25
  • 打赏
  • 举报
回复
引用 2 楼 hjywyj 的回复:
list=list.GroupBy(t=>t.issuercode).Select(t=>t.First()).ToList();
这个很好用!学习了 谢谢!
EnForGrass 2013-01-25
  • 打赏
  • 举报
回复
threenewbee 2013-01-25
  • 打赏
  • 举报
回复
引用 2 楼 hjywyj 的回复:
list=list.GroupBy(t=>t.issuercode).Select(t=>t.First()).ToList();
这个最简单 var query = list.GroupBy(x => new { /*在这里放入你视为重复的列,用逗号分割,比如*/ x.IssuerCode, x.LACode }).Select(x => x.First()).ToList();
q107770540 2013-01-25
  • 打赏
  • 举报
回复
 list=list.Distinct(new DcComparer ()).ToList();

    public class DcComparer : IEqualityComparer<Dc>
    {
        public bool Equals(Dc t1, Dc t2)
        {
            return (t1.IssuerCode== t2.IssuerCode&& t1.LACode== t2.LACode);
        }
        public int GetHashCode(Dc t)
        {
            return t.ToString().GetHashCode();
        }
    }
q107770540 2013-01-25
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
list=list.GroupBy(t=>t.issuercode).Select(t=>t.First()).ToList();
gxingmin 2013-01-25
  • 打赏
  • 举报
回复
lst.Distinct<DC>(); DC类集成IComparable,IComparer接口,实现比较函数就可以用Distinct<DC>()了

8,497

社区成员

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

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