読者です 読者をやめる 読者になる 読者になる

かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

C# Linq の拡張メソッド Concat の中身を見てみた

英語が弱いので、単語から意味を理解できない時がよくよくあります。

でも、挙動をしっかり理解してしまえば、すっと思い出せるだろうと思って中身を見てみた。すると以下の様に単純に2つの IEnumerable を受け取ってそれぞれ順番に yield return しているだけでした。

単純ですね!

public static IEnumerable<TSource> Concat<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second) {
        if (first == null) throw Error.ArgumentNull("first");
        if (second == null) throw Error.ArgumentNull("second");
        return ConcatIterator<TSource>(first, second);
}
static IEnumerable<TSource> ConcatIterator<TSource>(IEnumerable<TSource> first, IEnumerable<TSource> second) {
        foreach (TSource element in first) yield return element;
        foreach (TSource element in second) yield return element;
}