MailList内の受信日時をを古い順から取得し、書き出したい

Outlookメールメッセージを取得で得たMailList型変数の中に格納されている、受信日時を、古い受信日順番に取得したいです
list = list.OrderBy(Function(m) m.Header("Date")).ToListをやってみたのですが、新しく来たメールの日付順になっていしまいます。
この場合、古いメールの受信日時にする方法はありますか?

例 メールボックス内には下記のようになっている
2021/2/22に受信
2021/2/24に受信
2021/2/25に受信

通常のアクティビティで取得し、日付だけExcelに書き出すと下記になる
2021/2/25
2021/2/24
2021/2/22

これを下記のように並べ替えてExcelに書き出したいです
2021/2/22
2021/2/24
2021/2/25

こんにちは

が入力データなら

list.OrderBy(Function(m) m.Header("Date")).ToList

で昇順にソートできると思いますが、どのように確認していますでしょうか?

ただ上記はUS表記の日付文字列となっているため、入力によっては正しい結果とならない場合がありますので

list.OrderBy(Function(m) Datetime.Parse(m.Header("Date"))).ToList

として、DateTime型でソートした方が良いと思います。

Yoichiさんの書かれているとおりですが、

m.Header(“Date”) は メール送信元のサーバーでセットされた時刻が文字列で入りますが「月/日/年+時刻」だったりします。
なので「年/月/日+時刻」に変換してから並び替えないと、並びが保証できません。(Datetime.Parse や Cdateなどで変換する)

私も以前にハマりました。

こういうときは、以下画像のようにリストをデバッグ表示してみると「なぜなのか?」を自分で確認できると思います。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.