我有一个对象列表(成对,一个,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; }
}
有关如何执行此操作的任何建议吗?非常感谢你。
答案 0 :(得分:4)
list.GroupBy(o => o.MatchId)
.Select(g => new PairedObject
{
IsApproved = g.First(o => o.IsApproved),
NotApproved = g.First(o => !o.IsApproved)
});