答えて
連合(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. 連合またはSQL Server
- 3. 結合または連結
- 4. 連続問合せは、連続問合せのための
- 5. なぜ、連合または連合の結果を空のリストにできないのですか?
- 6. どちらが速いですか?
- 7. どちらが速いですか
- 8. 連合
- 9. どちらが高速で、key_cacheまたはOSキャッシュですか?
- 10. Prometheus連合野ベクトル連鎖
- 11. CloudFoundry UAA連合の連鎖
- 12. unordered_map:find()またはcount()のどちらが高速ですか?
- 13. データベースまたはメモリからのクエリですか?どちらが速いの?
- 14. SQLは:CTE、連合
- 15. どちらが速いか[if(x or y)]または[yがxの場合else]
- 16. 連合サービス
- 17. 連合ビットフィールド
- 18. ジャンゴ連合
- 19. 連合ルビー
- 20. アマゾンコグニート連合アイデンティティ
- 21. SQL連合
- 22. 高速連合とネットで交差する
- 23. Djangoからの連合クエリORM
- 24. SQLテーブル自己結合(または連合?)問題
- 25. 関連テーブルでSUMを取得します。見つからない場合は0が合計
- 26. どちらが速いですか?ストアドプロシージャの挿入またはダイレクト後のトリガー
- 27. どちらが速いですか? ORDER BY TimestampまたはWHERE Timestamp =
- 28. どちらが高い解像度ですか? GPSまたは加速度計?
- 29. どちらが速いですか? IBActionまたはプログラムによる?
- 30. どちらが速いですか? Pythonのキャストとサブトラクション、またはディクテーションルックアップ
List1.Concat(LIST2)と同じで両方の方法をお試し提供します。ストップウォッチを入手してください。それからあなたは知っているでしょう。 *推測*に基づいたパフォーマンス "分析"は、どのように教育されていても、エンジニアリング*の決定を下すための基礎としては実際には有用ではありません。 –