在fileinfo名称中按int排序fileinfo列表

时间:2016-04-28 10:57:09

标签: c# visual-studio sorting fileinfo

我在排序List时遇到一些麻烦,我需要按FileInfo.Name attribut对其进行排序,在此名称中是一个在字符串的最开头具有未知长度的整数。我需要按这个数字对列表进行排序。

根据我的经验,很难用这个字符串中的数字比较两个字符串,所以我需要一些帮助。

这是我的清单:

enter image description here

我需要将列表从[1,13,2,3,4,5]分类到此[1,2,3,4,5,13]

这是我到目前为止所尝试的内容:

infos.Sort((a, b) => a.Split('-')[0].CompareTo(b.Split('-')[0]));

当然,当我尝试按数字比较字符串时,这不起作用....

修改 不幸的是,Mukund的解决方案无法正常工作,如图所示:

enter image description here

1 个答案:

答案 0 :(得分:1)

你可以使用它。

infos.OrderBy(x => Convert.ToInt32(x.Split('-')[0]))


class Program11
    {
        static void Main(string [] args)
        {
            var infos = new List<string> { "1-100.jpg", "13-11.jpg", "2-145.jpg", "3-421.jpg", "4-842.jpg", "5-1000.jpg" };

            var orderedList = infos.OrderBy(x => Convert.ToInt32(x.Split('-')[0]));

            foreach (var lstItem in orderedList)
            {
                Console.WriteLine(lstItem);
            }

            Console.ReadKey();
        }
    }

<强>输出: enter image description here