0

重複の可能性:
IEnumerableコレクションに単一の要素を追加するための最良の方法は何ですか?

Enumerable.Repeat(100、100)と数値3を連結したいとします。これを行うための最も良い方法は何ですか?

もちろんできますが Enumerable.Repeat(100, 100).Concat(Enumerable.Repeat(3,1))、あまり表現力がありません...

4

4 に答える 4

3

本当にきれいにしたい場合は、のような拡張メソッドを作成してからConcatSingle呼び出すのが最善の方法です。

于 2012-10-24T08:49:45.910 に答える
2

その要素のみを含む中間配列を使用できます。

Enumerable.Range(100, 100).Concat(new []{ 3 });

追加の配列を作成せずにそれを可能にする拡張メソッドを作成することもできます。

public static IEnumerable<T> ToEnumerable<T>(this T obj)
{
    yield return obj;
}  

これが可能になりました:

Enumerable.Range(100, 100).Concat(3.ToEnumerable());
于 2012-10-24T08:47:56.307 に答える
0
public static IEnumerable<T> Concat(this IEnumerable<T> source, T item)
{
    //the code here is not very expressive to you :)
}

編集メソッド名を使用しないことをお勧めします。Concat使用するConcatSingleか、ConcatOne代わりに、以下のコメントの説明を参照してください。

于 2012-10-24T08:53:37.610 に答える
0

単一の値をIEnumerableに変換するための拡張メソッドを作成できます

public static class LinqEx
{
    public static IEnumerable<T> ToIEnumerable<T>(this T singleItem)
    {
        yield return singleItem;
    }
}

その後、

Enumerable.Repeat(100, 100).Concat(3.ToIEnumerable())
于 2012-10-24T08:50:52.483 に答える