问题描述
var查询结果=库.适用范围.Where(q=>q.添加剂==传入).OrderBy(o=>o.可用类别).Select(f=>new{显示="【"+f.可用类别+"】"+f.分类们.类别名称,值=f.可用类别}).ToList();一级类别.DataSource=查询结果.GroupBy(g=>g.值.Substring(0,2));
在不加入GroupBy(g=>g.值.Substring(0,2))之前,运行正常,加入之后,就报错:DataBinding:“System.Linq.Lookup`2+Grouping[[System.String,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[<>f__AnonymousType0`2[[System.String,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.String,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]],TDWY,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null]]”不包含名为“显示”的属性。意图是在以下纪录中:01.0101.0201.0302.0102.0202.03显示:0102
解决方案
解决方案二:
你加了groupby后,改变了结果集类型,绑定到datasoure当然报错了。。。一级类别.DataSource=查询结果.GroupBy(g=>g.值.Substring(0,2)).Select(f=>new{显示=F.First().显示,值=f.Key}).ToList();
select后为啥不用强类型,而用匿名类?