列挙が非常に長く、大きすぎてリストに合理的に変換できないと想像してください。リストから重複を削除したいとも想像してみてください。最後に、最初の列挙のごく一部だけが重複を含む可能性があることを私が知っていると想像してください。最後のポイントは問題を実用的にします。
基本的に、いくつかの述語に基づいてリストをフィルターで除外し、そのサブセットでDistinct()のみを呼び出しますが、述語がfalseを返した列挙と再結合します。
誰かがこれを行うための良い慣用的なLinqの方法を考えることができますか?質問は次のように要約されると思います。
Linqを使用して、述語列挙に対して選択的な処理を実行し、結果ストリームを述語から拒否されたケースと再結合するにはどうすればよいですか?