我尝试使用动态LINQ进行GroupBy,但无法使其正常工作。
以下是一些示例代码,说明了问题:
List<dtoMyAlbum> listAlbums = new List<dtoMyAlbum>();
for (int i = 0; i < 5000; i++)
{
dtoMyAlbum album = new dtoMyAlbum
{
Author = "My Author",
BookID = i,
CurrSymbol = "USD",
Price = 23.23,
Shop = i % 3 == 0 ? "TESCO" : "HMV"
};
listAlbums.Add(album);
}
IQueryable<dtoMyAlbum> mydata = listAlbums.AsQueryable();
int count = mydata.Count();
//var mydataGrouped = mydata.GroupBy(a => a.Shop); // <-- this works well (but is not dynamic....)
var mydataGrouped = mydata.GroupBy("Shop"); // <-- does not compile but is kind of what I want...
foreach (var group in mydataGrouped)
{
//count = group.Count();
}
我意识到在GroupBy重载中缺少'elementSelector',但我只想最终得到(在此情况下)两组dtoMyAlbum对象,因此我希望选择所有集合的所有元素...
我该如何做?
mydata.Where(x => x.Shop == "HMV");
? - Jeroen Vannevel