Linq to sql 有什么办法可以实现消除列重复?

Corser_Rocky 2009-01-23 09:20:31
比如数据库里有一表,有两个字段:
ID User
1 小白
2 小红
3 小白


过滤User列为小白的重复项后,我想要得到:
ID User
1 小白
2 小红

如果写db.linq.customer.Distinct<customer>();这样只能是每行全部匹配过滤,请问我应该怎么做?提前祝大家新年快乐,来年发财!
...全文
1888 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyh2ysy 2012-11-01
  • 打赏
  • 举报
回复
加个Distinct()方法不就行了?

http://msdn.microsoft.com/zh-cn/library/vstudio/bb348456.aspx
手可摘星辰 2012-09-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
C# code

//自定义比较符
public class MyComparer : IEqualityComparer<Customer>
{
public bool Equals(Customer x, Customer y)
{
return (x.User == y.User);
……
[/Quote]

都自定义了
Mrblack__ 2012-08-23
  • 打赏
  • 举报
回复
跟着你们学习,不错
MarcuseXiao 2010-06-12
  • 打赏
  • 举报
回复
说明:我上面是基于xml做的,因为我是写例如,附我的测试xml
<?xml version="1.0" encoding="utf-8" ?>
<customers>
<customer>
<ID>1</ID>
<User>小白</User>
</customer>
<customer>
<ID>2</ID>
<User>小红</User>
</customer>
<customer>
<ID>3</ID>
<User>小白</User>
</customer>
</customers>
MarcuseXiao 2010-06-12
  • 打赏
  • 举报
回复
你想要的应该是按user分组,取每组的第一个,如果按照1楼的做法,是不是每一个字段都得写一个自定义比较呀?有现成的东西,为什么不用:

var o = from r in xe.Descendants("customer")
group r by r.Element("User").Value into g
select g.OrderBy(r=>r.Element("User").Value).FirstOrDefault();

FirstOrDefault()这个地方如果改成Take就可以取前几个,例如每班的前三名。
如果改成Skip(),可以取中间的,例如10-20名
SamuDra 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gtx280 的回复:]
C# code

//自定义比较符
public class MyComparer : IEqualityComparer<Customer>
{
public bool Equals(Customer x, Customer y)
{
return (x.User == y.User);
……
[/Quote]

跟LZ一起学习...
oufeiren 2010-06-07
  • 打赏
  • 举报
回复
最后筛选的结果后面加个Distinct()方法就可以了,很简单的
zhangguofang1129 2010-06-07
  • 打赏
  • 举报
回复
(from h in HotelBasicInformation select h.ContinentId).Distinct()
shuahua88 2010-06-05
  • 打赏
  • 举报
回复
真的很强,谢谢了!
yezie 2009-02-02
  • 打赏
  • 举报
回复
楼上的很强。。。
GTX280 2009-01-23
  • 打赏
  • 举报
回复

//自定义比较符
public class MyComparer : IEqualityComparer<Customer>
{
public bool Equals(Customer x, Customer y)
{
return (x.User == y.User);

}

public int GetHashCode(User obj)
{
return obj.ToString().GetHashCode();
}
}
//消除重复数据
IEnumerable<Customer> CustomerDistinctList = db.Customers.ToList().Distinct(new MyComparer ());

8,497

社区成员

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

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