13

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

例如,我目前得到这些结果:

  • 项目一
  • 项目 10
  • 项目 2

我想看到的是:

  • 项目一
  • 项目 2
  • 项目 10

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

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

2 回答 2

10

没有使用 .NET 框架的内置方法来执行此操作,但我建议您阅读C# 中的自然排序以讨论该主题和开源实现。

于 2009-08-24T17:02:19.500 回答
2

我只是迟到了几年,但我只是想解决一个类似的问题,这对我有用。希望其他人觉得这很有帮助。

假设您将字符串放在列表中,请尝试以下操作:

List<string> projects = new List<string>
{
    "Project 1",
    "Project 10",
    "Project 2"
};
//Sort by a substring of the string value which omits the non-numeric characters
IEnumerable<string> sorted = projects.OrderBy(p => p.Substring(p.IndexOf(' ') + 2, p.Length - (p.IndexOf(' ') + 2)));
于 2014-01-22T22:04:29.290 回答