LINQ - GroupBy配对对象的一个键,然后将分组对象分成2个对象的列表



我有一个对象列表(成对,其中一个,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)
                     });

相关内容

  • 没有找到相关文章

最新更新