1
Line 1 - A 01/01/2012 01/05/2012  
Line 2 - B 01/01/2012 01/05/2012  
Line 3 - A 01/06/2012 01/07/2012  
Line 4 - A 01/01/2012 01/05/2012  
Line 5 - A 01/06/2012 01/07/2012

このリストを次の方法でバンドルしています

public IEnumerable<IEnumerable<Line>> Bundle(IEnumerable<Line> Lines)
    {
        yield return Lines
        .Where(x => x.PropertyOne = "A" )
    }

PropertytwoPropertythreeが等しいかどうかも比較したいので、以下のような結果が必要です

Lines  
----Line 1 - A 01/01/2012 01/05/2012  
----Line 4 - A 01/01/2012 01/05/2012  
Lines  
----Line 3 - A 01/06/2012 01/07/2012            
----Line 5 - A 01/06/2012 01/07/2012 

どんな助けでも大歓迎です。

4

1 に答える 1

2

yield リターンではなく、GroupBy を使用することをお勧めします。このようなもの:

public IEnumerable<IEnumerable<Line>> Bundle(IEnumerable<Line> Lines)
{
    return Lines
        .Where(x => x.PropertyOne == "A" )
        .GroupBy(x => new {x.PropertyTwo, x.PropertyThree});
}
于 2012-08-21T23:11:00.650 に答える