質問

IQueryable 変数が入力されている場合。

リストの最後に新しい空のエントリをどのように追加しますか?

これが私がしなければならないことです:

  1. エントリが2つある場合、3つの空のエントリを追加します
  2. エントリが0の場合、5つの空のエントリを追加します
  3. エントリが5つある場合は、空のエントリを5つ追加します

パターンが表示され、 asp.net リピーター用になりました。

単に汎用リスト(。toList())を作成し、追加機能を使用するか、これを行うより良い方法はありますか?

役に立ちましたか?

解決

まあ、それをIEnumerable<T>に変換してよければ、使用できます

query.Concat(Enumerable.Repeat(new SomeRow(), 5)
     .Take(5);

これにより、同じ余分な行が5回追加されます(そして合計が5に削減されます)。行を編集できるようにする必要がある場合、これは機能しません。そのためには、次のようなものが必要です。

query.AsEnumerable()
     .Concat(Enumerable.Range(1, 5).
                       .Select(ignored => new SomeRow())
     .Take(5);

(同じ関数をn回呼び出す簡単な方法があるとは思いませんが、間違っている可能性があります。)

編集:コメントに基づいてAsEnumerable()への呼び出しを追加しました。基本的にAsEnumerableを呼び出すと、<!> quot; SQLビットが終了します。残りはインプロセスで行います。<!> quot;

他のヒント

まあ、ToListして、Lengthプロパティを使用して、次に何をすべきかを判断します。

しかし、それをしたくない場合は、IEnumerableで5つの空のエントリを使用してUnionを実行し、結果に対してTake(5)を実行できます。冗長ではなく、短いものではないようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top