我想在我的代码中实现http://www.davekoelle.com/alphanum.html以对开头和结尾带有数字的字符串进行一些自然排序。我的问题是,没有做太多排序是如何将它实现到我的对象结构中。
我有一个
List<string[]> myStringArrays = new List<string[]>();
我添加了 1000 个这种类型的数组:
"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();
但正如您猜到的那样,它排序给 alpha 排序“1...”、“10...”等等。
我尝试了这种方法:
myStringArrays = myStringArrays.OrderBy(m => (m[2].Split(',')[0])).ThenBy(m => m[2].Split(':')[2]).ToList();
如果我的第三个字符串不符合该特定格式,则该方法有效但失败。这让我(最终)想到了我的问题——我将如何实现 Alphanum.cs 来解决这个问题?