【发布时间】:2015-06-17 10:55:32
【问题描述】:
我有一个 SortedDictionary,其值为对象列表。我想通过对象的给定属性对每个键的值(列表)进行排序。在当前情况下,我需要先按对象的姓氏对列表进行排序,然后再按名字排序。我尝试了 LINQ,但它很快就变得很糟糕,但没有产生结果。
编辑:
我有以下结构:
public class Person
{
private string firstName;
private string lastName;
...
}
我需要按键排序的字典。但是,我需要先按 Person 的 lastName 对每个 List 进行排序,然后再按 firstName。
var dict = new SortedDictionary<string, List<Person>>();
我没有提供排序代码,因为我无法让它工作。这就是我寻求帮助的原因。
【问题讨论】:
-
示例代码?作为提示:EqualityComparer 或其他东西应该可以完成这项工作
-
请向我们展示一些代码以及没有产生您所追求的结果的代码。然后我们可以给你一些建设性的反馈,帮助你理解。
-
A
SortedDictionary按键排序,而不是按值排序。为什么不在将列表添加到字典之前对其进行排序? -
@TimSchmelter 我知道字典是按键排序的。我主要需要它按键排序。但是,我也需要对列表中的值进行排序。我无法在添加列表之前对其进行排序,因为一切都是动态发生的,并且输入是从文件中读取的。
-
@zhulien: 列表可以包含重复项吗?如果没有,您可以使用
SortedSet<Person>。
标签: c# linq sorting dictionary