答えて
連合(EU)は、重複を削除します。 concatはありません。
ソースに共通の項目が含まれている場合や、内部の重複がある場合は、結果が異なります。
重複がないか、出力が少ない場合には、すでに得られた値に対して各値をテストする必要がないため、Concatは高速になります。
ただし、重複が多数あり、それらを必要としない場合、重複を削除するためのUnionの余分な処理は、結果を消費するコードの節約によって相殺される可能性があります。
実行速度のみを気にしますか?要素を受け取ったときに要素を処理するにはどのくらいの時間がかかりますか?
Concat
は簡単です。処理自体を実行する必要はなく、すでに返されている結果をバッファする必要もありません。ただし、交差点に要素があれば、より多くの結果が得られます。各結果を処理するのに時間がかかる場合は、Concat
がとなり、実際にはが遅くなります。
私の場合は、最後にDistinct()を使用します。これはUnionの使用を好むものです。 –
Unionを使用する場合は、後でDistinctを呼び出す必要はありません。 –
ユニオンはリスト間の重複を削除しますが、最初のリスト自体に重複がある場合、それらは共用体によって削除されません。だから状況に応じてDistinctを呼び出す必要があるかもしれません。 –
上記の内容は正しいです。あなたは、フルスピードが必要な場合は、例えば二つのリストとを連結する必要がある場合は、歩留まりを使用することを検討して
:ここには、いくつかの特別な場合ためのほんの少しの追加です。もちろん、これはフレキシブルで快適ではありません。UnionまたはConcat in Linq。したがって、特別な場合にのみ意味をなさない。例えば
このプロパティは、
public IEnumerable<MyObject> AllObjects
{
get
{
foreach (MyObject o1 in List1)
yield return o1;
foreach (MyObject o2 in List2)
yield return o2;
}
}
'Concat'は例でそれを表示する方法です(see:[source](https://referencesource.microsoft.com/#System.Core/System/Linq/) Enumerable.cs#800))。したがって、あなた自身で実装する必要はありません。 – scher
- 1. どちらが速いか:相関サブクエリまたは結合?
- 2. なぜ、連合または連合の結果を空のリストにできないのですか?
- 3. どちらが速いですか?
- 4. どちらが速いですか
- 5. どちらが高速で、key_cacheまたはOSキャッシュですか?
- 6. unordered_map:find()またはcount()のどちらが高速ですか?
- 7. データベースまたはメモリからのクエリですか?どちらが速いの?
- 8. SQL連合
- 9. 連合ビットフィールド
- 10. どちらが速いか[if(x or y)]または[yがxの場合else]
- 11. 高速連合とネットで交差する
- 12. NHibernateは - 連合3 QueryOvers
- 13. 連合2 ObservableCollectionリスト
- 14. 宝石の連続統合ですか?
- 15. mysql - "INNER JOIN"または "IN"。どちらが速いの?
- 16. どちらが速いですか?定数、変数または変数配列
- 17. どちらが速いですか? Pythonのキャストとサブトラクション、またはディクテーションルックアップ
- 18. どちらが速いですか? ORDER BY TimestampまたはWHERE Timestamp =
- 19. どちらが速いですか?ストアドプロシージャの挿入またはダイレクト後のトリガー
- 20. Magento-私たちのサイトに関連製品を統合するには
- 21. 処理が速いのはどちらですか?
- 22. mysql、ifnullとcoalesceはどちらが速いのですか?
- 23. getattr()とdictルックアップはどちらが速いですか?
- 24. DrawDib StretchDIBitsはどちらが速いのですか?
- 25. セマフォとミューテックスはどちらが速いのですか?
- 26. 文字列の連結が配列結合よりも速いのはなぜですか?
- 27. Find、Single、Firstのうち、どちらが最速ですか?
- 28. accdbとmdb。どちらが速い/良いですか?
- 29. SQLパフォーマンス:連合とサブクエリ
- 30. Pythonのdictオブジェクトの連合
List1.Concat(LIST2)と同じで両方の方法をお試し提供します。ストップウォッチを入手してください。それからあなたは知っているでしょう。 *推測*に基づいたパフォーマンス "分析"は、どのように教育されていても、エンジニアリング*の決定を下すための基礎としては実際には有用ではありません。 –