【问题标题】:C#/linq: order list of strings by its title ("Article 3", "Article 15") [duplicate]C#/linq:按标题排序的字符串列表(“Article 3”,“Article 15”)[重复]
【发布时间】:2017-05-04 14:03:09
【问题描述】:

我有一个 Item 对象列表 (C#):

列出项目列表。

Item 对象有一个属性 Title,其值在(“Article 3:”、“Article 14:”、“Article 233: dfsdf”等)之间变化。

当我以常规 LINQ 方式排序时,如下所示:

itemList.OrderBy(p => p.Title).ToList();

第 14 条排在第 3 条之前,因为它以 1 开头。我如何以正确的方式对这个集合进行排序?

【问题讨论】:

  • 重构你的类并添加一个ArticleNumber int 属性,然后按此排序。不要在单个字符串属性中存储多个信息。
  • 所有标题的格式是否相同:“文章:”?
  • @TimSchmelter 同意,这似乎是最干净的解决方案,将尝试一下。谢谢

标签: c# .net linq


【解决方案1】:

您可以仅在 Object 上定义一个带有 getter 的属性,该属性将从 Title 中仅加载数字(可能通过将标题用“ ”分割,或者替换文章文本,然后修剪结果),然后使用OrderBy 中的新属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2019-10-29
    • 1970-01-01
    • 2021-01-25
    • 2021-10-18
    • 2011-06-13
    相关资源
    最近更新 更多