这个Linq查询为什么返回重复的记录

yux007 2009-12-31 04:49:06
IEnumerable<IGrouping<System.Reflection.MemberTypes, System.Reflection.MemberInfo>> group =
typeof(String).GetMembers().
GroupBy(member => member.MemberType);

foreach(IGrouping<System.Reflection.MemberTypes, System.Reflection.MemberInfo> g in group)
foreach (System.Reflection.MemberInfo mi in g)
Console.WriteLine(g.Key + ":" + mi.Name);
...全文
164 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
thinkc 2010-01-06
  • 打赏
  • 举报
回复
那是因为有重载

[TestMethod]
public void Test01()
{
IEnumerable<IGrouping<System.Reflection.MemberTypes, System.Reflection.MemberInfo>> group =
typeof(String).GetMembers().
GroupBy(member => member.MemberType);

foreach (IGrouping<System.Reflection.MemberTypes, System.Reflection.MemberInfo> g in group)
foreach (System.Reflection.MemberInfo mi in g)
Console.WriteLine(g.Key + ":" + mi.Name);

typeof(String).GetMembers()
.Select(p => new { MemberTypesName = p.MemberType.ToString(), MemberInfo = p.Name })
.Distinct()
.GroupBy(p => p.MemberTypesName)
.ToList()
.ForEach(p => p.ToList().ForEach(p1 => Console.WriteLine(p1.MemberTypesName + ":" + p1.MemberInfo)));


}

yux007 2010-01-06
  • 打赏
  • 举报
回复
这个查询跟具体数据无关,是把string的所有成员按照MemberType分组,然后把分组后的成员遍历打印出来。既然是按照了MemberType分组,为什么每一组之内还会有重复记录?
liu2835993 2010-01-04
  • 打赏
  • 举报
回复
+一个 .Distinct() 试一下,去除重复数据
yanm7788 2010-01-04
  • 打赏
  • 举报
回复
不知道你的具体数据,用Sql追踪器查下你的查询语句吧
yux007 2010-01-01
  • 打赏
  • 举报
回复
都不知道?

8,497

社区成员

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

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