我有一个对象,结构如下
public MyObject{
int SomeNumber {get;set;}
Object SomeObject {get;set;}
Object SomeOtherObject {get;set;}
}
现在SomeNumber并不是唯一的,如果我有一个IEnumerable我如何提取所有具有相同SomeNumber值的IEnumerable<MyObject>
?
我认为我需要使用GroupBy来做到这一点?但似乎无法做到正确。
编辑:我不知道SomeNumber是什么。
答案 0 :(得分:5)
除非你想制作一组,否则不需要GroupBy
。
IEnumerable<MyObject> myEnumerable ...
myEnumerable.Where(o => o.SomeNumber == value);
答案 1 :(得分:2)
IEnumerable<MyObject> source = something;
var grouped = source.GroupBy(s => s.SomeNumber);
答案 2 :(得分:2)
var myObjects = new List<MyObject>(); // fill
var groups = from item in myObjects group item by item.SomeNumber;
// alternatively:
// var groups = myObjects.GroupBy(item => item.SomeNumber)
foreach (var g in groups)
{
var someNumber = g.Key;
var members = g.ToList();
}
应该这样做。