我的结构:
public struct MyStruct
{
public int MyStructId;
public decimal Properties1;
public string Properties2;
...
}
var myList = new List<MyStruct>();
我的数据内部例如:
MyStructId Properties1 Properties2
========== =========== ===========
1 2.5m test
1 1.0m test2
2 2.2m test3
1 1.8m test4
2 2.9m test5
我的目标是浏览我的特定类型的分组列表。这样的事情:
foreach (List<MyStruct> myStruct in myList.GroupBy(m => m.MyStructId))
foreach (List<MyStruct> myStruct in myList.GroupBy(m => m.MyStructId).Select(g => new { myStruct = g.ToList()}).ToList()))
Linq表达式应返回<List<List<MyStruct>>
。
最好的方法是什么?
谢谢你的帮助。
答案 0 :(得分:2)
这应该会给你预期的结果: -
List<List<MyStruct>> myStruct = myList.GroupBy(m => m.MyStructId)
.Select(g => g.ToList()).ToList();
如果您想在foreach
循环中直接使用此功能,则可以忽略上一个ToList
: -
foreach (List<MyStruct> myStruct in myList.GroupBy(m => m.MyStructId)
.Select(g => g.ToList()))
{
}