首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

linq的group by 缺陷?解决办法

2012-01-19 
linq的group by 缺陷?最近遇到一个需要用linq来进行group by 分组的问题我想实现的sql如下:select * from

linq的group by 缺陷?
最近遇到一个需要用linq来进行group by 分组的问题
我想实现的sql如下:
select * from table group by @param 
其中的@param为变量,可以由用户选择按什么来进行分组。如:状态,创建人等
但是在linq中却不能这么灵活的拼接字符串了~

我用linq写了一个按照固定字段“状态”来进行分组的语句。
难道linq真的无法实现这样的功能吗?

C# code
from ss in table         group ss by ss.status into g         select new         {             KEY = g.Key,             COUNT = g.Count()         }


[解决办法]
List<A> List = new List<A>();
var P= List
.GroupBy(x => new { x.Age, x.Sex })
.Select(group => new {
Stu= group.Key, Count = group.Count()
});
foreach (var a in P) {
  
}


[解决办法]
C# code
        from ss in table        group ss by ss.GetType().GetProperty(@param) into g        select new        {             KEY = g.Key,             COUNT = g.Count()        };
[解决办法]
只能是指定的。
[解决办法]
这情况还是只能用字符串拼凑
[解决办法]
用lambda表达式树可以实现的

[解决办法]
可以的,楼主要用自定义分组,类似于linq in action那本书里面有个自定义排序的例子

void CustomerGroup<TKey>(Func<Book,TKey> selector)
{
var books=
from book in books group book by selector(book) select book;
}

然后调用CustomerGroup(book=>book.任何属性)
[解决办法]
sorry,忘写into了,完整地语句如下:

void CustomerGroup<TKey>(Func<Book,TKey> selector)
{
var books =
from book in Books
group book by selector(book) into pricebooks
select new { Price = pricebooks.Key, Title = pricebooks };

}
[解决办法]
应该是可以的

[解决办法]
#3楼 得分:0回复于:2009-12-08 09:28:55引用:
select * from table group by @param 

可以这样使用sql的吗??? 



这样是拼字符串的方式,意思是说后面的group by是可变的参数,根据传的值来进行分组,而不是写死。 
 
不寫死也不對呀 select * from table group by @param 
分組可用*呀??。。。。

[解决办法]
你的table是什么类型?

热点排行