我有一个字典,我投影到一个列表,我排序。之后,我返回结果。但是,我想知道是否可以(如果是这样的话)返回已排序的数组而不先存储它。
List<SomeType> thingies = dictionary.Select(element => element.Value).ToList();
thingies.Sort((the, thing) => the.Id.CompareTo(thing.Id));
return thingies;
编译器唠叨我无法将 void 类型设置为 List 类型,这是可以理解的。但是有可能使 Sort 吐出一个要返回的新列表(没有多态)。有点像这样。
return dictionary.Select(element => element.Value)
.ToList()
.Sort((the, thing) => { ... });
答案 0 :(得分:1)
你需要:
return dictionary.Select(element
=> element.Value.OrderBy(r=> r.Id).ToArray())
.ToList();
这将返回有序的值列表,而不修改原始Array
。