【发布时间】:2015-06-22 16:03:13
【问题描述】:
我有一个IEnumerable<T> 列表。 - T 是一个自定义类型,该类型的成员之一是一个名为 Id 的 int。
我还有一个Dictionary<int, int>object,第一个 int 是一个 Id(这个 id 将在 IEnumerable<T> 列表中。第二个 Int 是一个评级编号。
我想根据Dictionary<int, int> 内部的评级订购IEnumerable<T> 列表 - 最高优先
我可以通过 if 语句和循环来做到这一点,但我觉得这可以使用 linq/lambda 语句来完成。
有人知道如何做到这一点吗?
我猜像list.OrderBy(x => x.id == Dictionaryname. something something something
【问题讨论】:
-
如果您想知道如何从字典中获取键的值,请查看
Dictionary的文档,其中有很多示例说明如何做到这一点。 -
您可以在
OrderBy方法上使用自定义比较器,该方法键入字典并检查项目a是否应该出现在项目b之前、相同位置或之后,或者您的字典由 id 属性键入,您可以直接在OrderBylamba 中访问字典
标签: c# .net linq generics dictionary