シーケンスに要素を連結する
(๑╹ω╹)<欲しいなあ
と思ったので。
yield return を使用するパターン
Program.cs
/// <summary>
/// シーケンスの前方に要素を連結します
/// </summary>
/// <typeparam name="TSource">入力シーケンスの要素の型</typeparam>
/// <param name="first">連結する最初の要素</param>
/// <param name="second">最初の要素に連結するシーケンス</param>
/// <returns>2つの入力シーケンスの連結された要素が格納されている System.Collections.Generic.IEnumerable<T></returns>
public static IEnumerable<TSource> Concat<TSource>( this TSource first, IEnumerable<TSource> second )
{
yield return first;
foreach ( var _second in second ) { yield return _second; }
}
Program.cs
/// <summary>
/// シーケンスの後方に要素を連結します
/// </summary>
/// <typeparam name="TSource">入力シーケンスの要素の型</typeparam>
/// <param name="first">連結する最初のシーケンス</param>
/// <param name="second">最初のシーケンスに連結する要素</param>
/// <returns>2つの入力シーケンスの連結された要素が格納されている System.Collections.Generic.IEnumerable<T></returns>
public static IEnumerable<TSource> Concat<TSource>( this IEnumerable<TSource> first, TSource second )
{
foreach ( var _first in first ) { yield return _first; }
yield return second;
}
Enumerable.Concat を使用するパターン
Program.cs
/// <summary>
/// シーケンスの前方に要素を連結します
/// </summary>
/// <typeparam name="TSource">入力シーケンスの要素の型</typeparam>
/// <param name="first">連結する最初の要素</param>
/// <param name="second">最初の要素に連結するシーケンス</param>
/// <returns>2つの入力シーケンスの連結された要素が格納されている System.Collections.Generic.IEnumerable<T></returns>
public static IEnumerable<TSource> Concat<TSource>( this TSource first, IEnumerable<TSource> second )
{
return Enumerable.Concat( new[ ] { first }, second );
}
Program.cs
/// <summary>
/// シーケンスの後方に要素を連結します
/// </summary>
/// <typeparam name="TSource">入力シーケンスの要素の型</typeparam>
/// <param name="first">連結する最初のシーケンス</param>
/// <param name="second">最初のシーケンスに連結する要素</param>
/// <returns>2つの入力シーケンスの連結された要素が格納されている System.Collections.Generic.IEnumerable<T></returns>
public static IEnumerable<TSource> Concat<TSource>( this IEnumerable<TSource> first, TSource second )
{
return Enumerable.Concat( first, new[ ] { second } );
}
エラーチェックがありませんのでご注意下さい。
Author And Source
この問題について(シーケンスに要素を連結する), 我々は、より多くの情報をここで見つけました https://qiita.com/kuchikios/items/b5960a91d9165351071c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .