必须做很多事情才能让 IGrouping 在 MVC4 c# 中工作。以下是我的查询
var a = (from r in db.SomeProcedure(Id)
select new MyClass1
{
Id= r.Id,
Title = r.Title,
Name = r.Name,
Number = r.Number,
Product = r.Product,
OtherId = r,OtherId
}).ToList();
//以上按预期返回13个结果
var b = a.GroupBy(x => x.Title ?? "unknown", c => new MyClass2
{
Title2 = c.Title,
Id2 = c.Id,
OtherId2 = c.OtherId,
Number2 = c.Number
});
//上面按预期返回2
List<MyClass1> mClass1 = a;
List<IGrouping<string,MyClass2>> mClass2 = b.ToList();
//上面2个和预想的一样
最后
mPrivateClass1.Clear();
mClass1 .ForEach(o => mPrivateClass1.Add(o));
//上面就是预期的13
mPrivateClass2.Clear();
mClass2 .ForEach(p => mPrivateClass2.AddRange(p));
//上面是返回 13 而不是 2 如预期的那样。我不能使用 Add(p) 它给 Generic List<> .Add 有一些无效的参数。
mPrivateClass1 is a:
private List<MyClass1> mPrivateClass1 = new List<MyClass1>();
mPrivateClass2 is a:
private List<MyClass2> mPrivateClass2 = new List<MyClass2>();