我有一个对象列表(成对,其中一个,IsApproved
为真,另一个,IsApproved
为假,即:
public class Object
{
public int Id { get; set; }
public int MatchId { get; set; }
public string Name { get; set; }
public bool IsApproved { get; set; }
}
列表应该是这样的:
1 123ABC SomeName True
2 123ABC SomeElse False
3 321CBA Name2 True
4 321CBA Name3 False
5 987ASD NameName True
6 987ASD TestTest False
我需要能够按MatchId
对它们进行分组,然后将它们分开,这样我就有了一个像这样的新列表:
public class Program
{
public List<PairedObject> PairedObjects { get; set; }
}
public class PairedObject
{
public Object IsApproved { get; set; }
public Object NotApproved { get; set; }
}
有什么建议吗?非常感谢。
list.GroupBy(o => o.MatchId)
.Select(g => new PairedObject
{
IsApproved = g.First(o => o.IsApproved),
NotApproved = g.First(o => !o.IsApproved)
});