List<MailMessage>のソートについて

「Outlookメールメッセージを取得」にて取得したリストを、メールの受信日昇順に並び替えたい場合、どうしたら良いでしょうか?

検証していませんが。。。
取得したリストを list としたとき、 Assign アクティビティで list = list.OrderBy(Function(m) m.Header("Date")).ToList としてあげれば行く気がします。

こんにちは

受信日時なのと、String型で返すとMM/dd/yyyy形式なのでそのままソートすると期待する結果にならないと思います。そのためソート対象を一旦DateTime型にParseする必要があるかと思います。

これを踏まえますと

mailList = mailList.OrderBy(function(x) DateTime.Parse(x.Headers("DateRecieved"))).toList()

あるいは

mailList = mailList.OrderBy(function(x) DateTime.Parse(x.Headers("DateRecieved").Replace("(JST)","").Trim())).toList()

のようにすると良いと思います。
ちなみに後者は以下のようなケースがあるとのことでその対応です。

1 Like

cheez_RPA様
Yoichi様

回答頂いたどちらの方法でも、ソート出来ました。
ご回答いただき、ありがとうございました!

2 Likes