ホームページ >バックエンド開発 >C++ >2 つのリストを効率的に結合し、重複を削除し、順序を維持するにはどうすればよいですか?

2 つのリストを効率的に結合し、重複を削除し、順序を維持するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-27 05:54:13925ブラウズ

How Can I Efficiently Merge Two Lists, Removing Duplicates, and Maintaining Order?

連結結果のリストの結合

このシナリオでは、文字列 (または任意の型) の 2 つのリストがあり、元の文字列を維持しながらそれらを迅速に結合したいと考えています。注文。さらに、マージされたリスト内の重複エントリをすべて削除したいと考えています。このトピックを調査したにもかかわらず、あなたは単純な解決策を特定しておらず、複雑なインターフェイスの実装を避けたいと考えています。

効果的なアプローチの 1 つは、AddRange メソッドを使用することです。

List<string> a = new List<string>();
List<string> b = new List<string>();

a.AddRange(b);

このアプローチでは、次の順序が維持されます。両方のリストの要素を追加し、b の内容を a に転送します。ただし、重複は削除されません。

重複の問題に対処する代替オプションは、Union メソッドです。

var newList = a.Except(b).ToList();

この行は、重複を除いて、a と b の要素を結合します。結果は、newList という名前の新しいリストに保存されます。

最後に、元のリストを維持する必要がある場合は、Concat メソッドを利用できます。

var newList = a.Concat(b);

この操作により、IEnumerable オブジェクトが生成されます。 。両方のリストを反復処理し、それらの要素を出現順に順次生成します。出力としてリストが必要な場合は、ToList メソッドを使用して IEnumerable をリストに変換できます。

以上が2 つのリストを効率的に結合し、重複を削除し、順序を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。