前提・実現したいこと
文字列のコレクションに対して、「TryParseに成功したものを変換された状態で取得する」という処理を書きたいです。
Linqを使って書いてみた結果以下のようになりましたが、WhereとSelectで2度変換している点や、Whereで変換したDateTimeを捨てている点が気になります。
より良い書き方はないでしょうか?
該当のソースコード
C#
1// 2回変換するのはどうか・・・ 2var results = strings.Where(p => DateTime.TryParse(p, out DateTime q)) 3 .Select(p => DateTime.Parse(p)); 4 5// かといって行が増えるのもちょっと・・・ 6var results = strings.Select(p => DateTime.TryParse(p, out DateTime q) ? (DateTime?)q : null) 7 .Where(p => p != null); 8 .Select(p => (DateTime)p);
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/01 05:57