いくつかの日付フィールドを持つクラス「エントリ」があります。
- CreationDate(常に利用可能)
- manualSetDate(常にではありません)
- MeetingDate(常にではありません)
ここで、最初のmeetingDate(会議のすべてのエントリをまとめる)でエントリを並べ替え、次に、manualSetDateで1つのエントリで使用できない場合、同じ会議がある場合、または1つのエントリにmanualSetDateがない場合は次のように並べ替えます。作成日。
難しいのは、多くのエントリに会議またはmanualSetDateがないことです。だから私は次のようなすべての可能な組み合わせを繰り返しました(そう願っています):
Date relevant1; //at the end i compare both relevant dates
Date relevant2;
if e1.creationdate != null && e2.creationdate == null)
{relevant2 = e2.creationdate}...
if e1.creationdate == null && e2.creationdate != null)
{relevant2 = e2.creationdate}...
...
これは非常に複雑になります
並べ替え順序:
- ミーティングの日付(両方に1つある場合)
- ManualSetDate(両方に1つある場合)
- 作成日
私はすべての組み合わせを横断しましたが、それは間違いを犯しているようです...
並べ替えを行うためのより良い方法はありますか?何か案は?