- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 C# 中的排序有疑问。
让我们假设有 List<Person> personList
有 50 个项目。
每个Person
有string forename, surname
.
现在我想对这个人员列表进行排序。
首先,列表应按 Forename
排序。 .
因此我会使用这个:
personList.Sort((p1, p2)=>string.Compare(p1.Forename, p2.Forname, true));
之后我想用相同的 Forname
对所有条目进行排序通过他们 Surname
.
我该怎么做?
编辑:@Russ Cam:这是一个示例列表。
未分类:
David Johnson
William Black
David Smith
Matthew Edwards
Jayden Anderson
Andrew Connor
Adam Johnson
Daniel Armstrong
Steve Anderson
Daniel Black
排序:
Adam Johnson
Andrew Connor
Daniel Armstrong
Daniel Black
David Johnson
David Smith
Jayden Anderson
Matthew Edwards
Steve Anderson
William Black
最佳答案
您可以使用 LINQ 的 OrderBy
实现方法
var sortedPersonList = personList.OrderBy(p => p.Forename).ThenBy(p => p.Surname);
编辑:
这是一个完整的控制台应用程序,用于验证这是否按您期望的顺序返回结果
static void Main()
{
var personList = new List<Person>{
new Person("David Johnson"),
new Person("William Black"),
new Person("David Smith"),
new Person("Matthew Edwards"),
new Person("Jayden Anderson"),
new Person("Andrew Connor"),
new Person("Adam Johnson"),
new Person("Daniel Armstrong"),
new Person("Steve Anderson"),
new Person("Daniel Black")
};
var sortedPersonList = personList.OrderBy(p => p.Forename).ThenBy(p => p.Surname);
foreach (var person in sortedPersonList)
{
Console.WriteLine(person);
}
Console.Read();
}
public class Person
{
public Person(string name)
{
var names = name.Split(' ');
Forename = names[0];
Surname = names[1];
}
public string Forename { get; set; }
public string Surname { get; set; }
public override string ToString()
{
return Forename + " " + Surname;
}
}
写出来
Adam Johnson
Andrew Connor
Daniel Armstrong
Daniel Black
David Johnson
David Smith
Jayden Anderson
Matthew Edwards
Steve Anderson
William Black
关于c# - 如何对有时条目相等的 List<Person> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438023/
Person 是一个以 Parent 作为其子类的类。 考虑以下 2 个陈述: Person person = new Parent(); 父parent=(父)人; 第二个语句将 person 对象
像这样,我有一个对象: { 'person': { 'like': { 'color': 'red', 'food': 'rice' }, 'nam
对于下面的代码,我想知道为什么 Object.getPrototypeOf(person) 可以工作,但 person.getPrototypeOf(person) 不起作用?我认为规则是:如果对象没
我有 3 个 java 源文件。 Person.java FriendsList.java MyFriends.java FriendsList包含 Person 类型对象的数组列表以及将新 frie
我想我理解错误消息的意思,我有一个人,并试图将它转换为 HashMap,但这不是代码所说的?我不明白我做错了什么。当我阅读代码时,我没有发现任何问题..我已经坚持了一段时间了。如果我错过了一些基本的东
我知道以前在类似情况下曾有人问过这个问题,但是我是 C++ 的新手,无法弄清楚需要做什么或为什么必须这样做。基本上,我使用的是我创建的具有变量名称、年龄、高度和体重的 Person 对象。我需要对我创
我正在尝试编写从文件读取并添加到二叉树的程序,但是当我尝试编译时出现错误: "Error 1 'treePersons::display' : cannot convert parameter 1 f
我明白了 error: could not convert 'p1' from 'Person (*)()' to 'Person' 每当我使用默认构造函数时(当我创建 Person p1 时),我知
假设我有一个非常简单的类 Person,其中包含姓名和地址: public class Person { String name; String address; public
所以我刚开始学习 Crystal,因为我喜欢 Ruby 和 C,但我还不能掌握语法。我想我已经很接近了,但我被这个错误困住了。 没有重载匹配 Person 类型的 'Array(Person)#+'
我理解前两个陈述。但是,对于第三种说法,我想不通人是什么类型的人? IEnumerable(person) 还是 List(person)?我假设幕后有转换。有人可以解释一下语句 3 中使用了哪些技术
我有两个外部电话 这给出了 Future[Seq[People]] 它接受 person_id 并返回 person_status 作为 Future[String] 我需要使用第一个调用中可用序列中
在 HP Probook 4540S 笔记本(Win 7Prof 64 位)上安装 Delphi XE3 后,我在编译时遇到问题,该项目是一个空的 VCL 项目,表单上没有任何组件。起初,我收到“无效
我有类人: class Person{ private String name; public Person(String name) { this.name = na
我在尝试实现我的程序时遇到链接器错误 undefined reference to Person::Person。三个部分如下。我一直在努力修复它几个小时。我知道这可能很简单,只是我没有看到。但是我在
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
In function 'int main()': 41 14 [Error] no match for 'operator=' (operand types are 'Person' a
有没有XXXUtils我在哪里可以做 String s = XXXUtils.join(aList, "name", ","); 哪里"name"是 aList 中对象的 JavaBeans 属性.
我不知道以前有没有人问过这个问题,因为英语不是我的母语,我也不知道要搜索的关键字。 所以基本上我有以下输入元素, 我想将名称分成 3 个部分,例如 ["person", "0", "email"]。
我正在比较本地计算机中的证书,MMC.exe 允许我查看“当前用户”和“计算机”的证书。 我不明白为什么会有两个“个人”商店。有人可以解释为什么有两个,以及它们如何相互作用吗? 很高兴知道为什么其他文
我是一名优秀的程序员,十分优秀!