[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
2022-02-14 01:31:05
質問
.NETでC#を使用して、2つ以上のリストを1つのリストに変換することは可能でしょうか?
例えば
public static List<Product> GetAllProducts(int categoryId){ .... }
.
.
.
var productCollection1 = GetAllProducts(CategoryId1);
var productCollection2 = GetAllProducts(CategoryId2);
var productCollection3 = GetAllProducts(CategoryId3);
解決方法は?
LINQを使用することができます。
Concat
と
ToList
メソッドを使用します。
var allProducts = productCollection1.Concat(productCollection2)
.Concat(productCollection3)
.ToList();
これを行うには、より効率的な方法があることに注意してください。上記の方法は、基本的にすべてのエントリをループして、動的にサイズ調整されたバッファを作成します。最初からサイズを予測することができるので、このような動的なサイズ調整は必要ありません。 できる を使用します。
var allProducts = new List<Product>(productCollection1.Count +
productCollection2.Count +
productCollection3.Count);
allProducts.AddRange(productCollection1);
allProducts.AddRange(productCollection2);
allProducts.AddRange(productCollection3);
(
AddRange
は特殊なケースで
ICollection<T>
を使用すると、効率的です)。
でも、どうしても必要なとき以外は、この方法はとらない方がいいと思います。
関連
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] 2つのリストを辞書に変換するにはどうしたらいいですか?
-
[解決済み] 特定のプロパティに対するLINQのDistinct()
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
-
[解決済み] 2つのリストの差を取得する
-
[解決済み] データフレームのリストを行単位で1つのデータフレームに結合する
-
[解決済み】2つのリストを並列に反復処理する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】Unity3DでOnTriggerEnterが動作しない件
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】「namespace」なのに「type」のように使われる。