|
■No100440 (かな さん) に返信 > 並べ替え後 > [0]→"みかん,001,500" > [2]→"みかん,001,600" > [3]→"りんご,002,600" > [1]→"さくらんぼ,003,300"
データを並び替えたいのではなく、並び替えた結果の 0,2,3,1 という インデックス順のみを拾いたいのであれば、こんな感じで。
string[] records = File.ReadAllLines(csvFilePath, Encoding.UTF8);
int[] sortedIndexArray = records.Select((s, i) => new { i, c = s.Split(',') }).OrderBy(_ => _.c[1]).ThenBy(_ => _.c[2]).Select(_ => _.i).ToArray();
Console.WriteLine("並び替え後"); foreach (int idx in sortedIndexArray) { Console.WriteLine("[{0}]→\"{1}\"", idx, records[idx]); }
|