コードにhttp://www.davekoelle.com/alphanum.htmlを実装して、最初と最後に数字を含む文字列を自然に並べ替えたいと思います。私の問題は、あまりソートを行っていないので、これをオブジェクト構造にどのように実装するかです。
私は
List<string[]> myStringArrays = new List<string[]>();
そして私はこのタイプの何千もの配列を追加しました:
"text", "text", "1, label:3", "","","", etc ...
"text", "text", "2, label:2", "","","", etc ...
"text", "text", "2, label:1", "","","", etc ...
"text", "text", "10, label:3", "","","", etc ...
編集:(この例では、ラベルは常に「ラベル」です)
LINQで並べ替えています
myStringArrays = myStringArrays.OrderBy(m => m[2]).ToList();
ただし、ご想像のとおり、アルファソートは「1 ...」、「10...」などになります。
私はこのアプローチを試しました:
myStringArrays = myStringArrays.OrderBy(m => (m[2].Split(',')[0])).ThenBy(m => m[2].Split(':')[2]).ToList();
これは機能しますが、3番目の文字列がその特定の形式を満たさない場合は失敗します。これは私を(最終的に)私の質問に導きます-この問題を解決するためにAlphanum.csをどのように実装しますか?