LINQ和自然排序顺序

获取LINQ查询(从SQL数据库 – 这有关系吗?)自然地排序字符串的最简单方法是什么?

例如,我目前正在获得这些结果:

  • 项目1
  • 项目10
  • 项目2

我想要看的是:

  • 项目1
  • 项目2
  • 项目10

我正在使用的查询是这样的:

return from p in dataContext.Projects orderby p.Name select p; 

使用.NET框架没有内置的方法可以做到这一点,但我建议您阅读C#中的自然排序,以讨论该主题和开源实现。

我参加聚会只有几年,但我只是想解决一个类似的问题,这对我有用。 希望别人觉得这很有帮助。

假设你在List中有你的字符串,尝试这样的事情:

 List projects = new List { "Project 1", "Project 10", "Project 2" }; //Sort by a substring of the string value which omits the non-numeric characters IEnumerable sorted = projects.OrderBy(p => p.Substring(p.IndexOf(' ') + 2, p.Length - (p.IndexOf(' ') + 2)));