0

会社を辞めた人が書いたコードを引き継いでいます。彼は次のように書いていますが、それを読んだり解釈したりする方法について私は完全に混乱しています

public override IEnumerable<IEnumerable<ChangeContext>> GroupHistory(
        SqlConnection connection, long seqNum, int batchSize)
    {
        var history = GetHistory(connection, seqNum);
        LastSequenceNumber = history.LastSequenceNumber;
        Timestamp = history.Timestamp;
        // grouping by broker and compacting changes

        return history.Changes.OrderBy(c => c.SequenceNumber).GroupBy(c => c.CtbID, (l, c) => c).ToList()
           .Select(group => ConvertChanges(group));
    }

私が混乱しているのはGroupbyです。最初の部分は clear c => c.CtbID です - これは CtbID の groupby です。私が理解していないのは - (l, c) => c これは2つのパラメータを持つ別のラムダのように見えますか?

4

1 に答える 1

3

これは要素セレクターであり、ID とその ID でグループ化されたグループを取ります。したがって、一連のグループになります。

具体的なオーバーロードは

IEnumerable<TResult> GroupBy<TSource, TKey, TResult>(
    this IEnumerable<TSource> source,
    Func<TSource, TKey> keySelector,
    Func<TKey, IEnumerable<TSource>, TResult> resultSelector)

http://msdn.microsoft.com/en-us/library/bb549393.aspx

于 2013-04-26T15:32:32.623 に答える