C#/linq:按标题排列字符串列表(“第3条”、“第15条”)
我有一个项目对象列表(C#): 列出项目列表 Item对象有一个属性标题,其值在(“第3条:”、“第14条:”、“第233条:dfsdf”等)之间变化 当我以常规LINQ方式排序时,如下所示:C#/linq:按标题排列字符串列表(“第3条”、“第15条”),c#,.net,linq,C#,.net,Linq,我有一个项目对象列表(C#): 列出项目列表 Item对象有一个属性标题,其值在(“第3条:”、“第14条:”、“第233条:dfsdf”等)之间变化 当我以常规LINQ方式排序时,如下所示: itemList.OrderBy(p => p.Title).ToList(); 第14条排在第3条之前,因为它以1开头。如何以正确的方式对该集合进行排序?您可以定义一个仅在对象上使用getter的属性,该属性将仅从标题加载数字(可以通过将标题拆分为“”,或者替换文章文本,然后修剪结果),并在Or
itemList.OrderBy(p => p.Title).ToList();
第14条排在第3条之前,因为它以1开头。如何以正确的方式对该集合进行排序?您可以定义一个仅在对象上使用getter的属性,该属性将仅从标题加载数字(可以通过将标题拆分为“”,或者替换文章文本,然后修剪结果),并在OrderBy中使用新属性。重构类并添加
articlerNumber int
属性,然后按该属性排序。不要在一个字符串属性中存储多个信息。所有标题是否具有相同的格式:“文章:”?@TimSchmelter同意,这似乎是最干净的解决方案,可以尝试一下。谢谢