私はquestion以前の投稿から、次のコードで自分の日数に応じて、CSVファイルの内容を並べ替えるしようとしています:LINQを使用してOrderByを選択する方法は?
private class CSVEntry
{
public DateTime Date { get; set; }
public string Grp { get; set; }
}
...
List<CSVEntry> csvList = new List<CSVEntry>();
csvList.Add(new CSVEntry() { Date = DateTime.ParseExact(col[7], "dd/MM/yyyy", null), Grp = col[9] });
var results = csvList.OrderBy(x => x.Date); // An error occurs at "Date".
...
しかし、私はこのエラーを得た:
'string' does not contain a definition for 'Date' and no extension method 'Date' accepting a first argument of type 'string' could be found.
何I出力を他の列の文字列にしたいが、時間順にソートする。このコードを使用して日付を表示しようとしたとき:
var results = csvList.Where(x => x.Grp == "DEFAULT").OrderBy(x => x.Date);
時系列でソートされた日付として出力に完全に機能します。しかし、今回は日付を表示したくありません。私は上記のように他の列から文字列を表示したい。私は使用しようとしました
var results = csvList.Select(x => x.Grp).OrderBy(x => x.Date);
でも同じエラーがありました。どこが間違っていたのですか?私はLINQの初心者で、List<T>
とIEnumerable<T>
に慣れていません。これは初めての使用です。
あなたの前にセレクトボタンを押してください。 – Evk
あなたはcsvの日付フォーマットと 'DateTime.ParseExact(col [7]、" dd/MM/yyyy "、null)の日付フォーマットをチェックアウトします – Mostafiz
私はあなたのサンプルコードを上から走らせました。あなたのデータについて何か奇妙なことがありますか?エラーのある行は、CSVEntryの代わりに文字列として 'x'を認識しています。 'using'ステートメントを見せてもらえますか? –