首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按属性名称对List<Object>进行排序

问按属性名称对List<Object>进行排序
EN

Stack Overflow用户
提问于 2015-05-11 13:48:19
回答 1查看 404关注 0票数 1

我有一节课

代码语言:javascript
复制
public class Test
{
    public string Value { get; set; }
}

然后

代码语言:javascript
复制
List<Test> values = new List<Test>()  //contains 10 items

列表中某些项的Value属性可以以字符>开头

示例:

代码语言:javascript
复制
 Name
 Something 
 Example
 > Another one
 Demo
 Student
 > Home

如何对对象列表进行排序,使列表中的第一个项目按字母顺序排序,以>开头的项目也按字母顺序排序,但位于列表的末尾?

这就是我到目前为止所做的:

代码语言:javascript
复制
values.Where(x => !x.Value.StartsWith(">")).OrderBy(x => x.Value);
EN

回答 1

Stack Overflow用户

发布于 2015-05-11 13:54:43

您需要计算一个键作为排序依据。

代码语言:javascript
复制
List<Test> ordered = values.OrderBy(v => 
         v.Value.StartsWith(">") ? "ZZ" + v.Value : v.Value
).ToList();

"ZZ“是一个任意键,它将对所有英文术语后面以">”开头的值进行排序。(是字母表中的最后一个字母,没有以两个Z开头的英文单词)。SInce ">“的字节值比任何字母都低一个Z是不够的,因为任何有效的英语术语都会排在以Z>开头的任何内容之后

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30160427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档