C# 订单IEnumerable<;T>;基于字典的对象
我有一个C# 订单IEnumerable<;T>;基于字典的对象,c#,.net,linq,generics,dictionary,C#,.net,Linq,Generics,Dictionary,我有一个IEnumerable列表T是一个自定义类型,该类型的一个成员是名为Id的int 我还有一个Dictionary对象。第一个int是一个Id(这个Id将在IEnumerable列表中。第二个int是一个评级编号 我想根据字典中的评级排序IEnumerable列表-最高优先 我可以通过if语句和循环来实现这一点,但我感觉这可以通过使用linq/lambda语句来实现 有人知道怎么做吗 我猜类似于list.OrderBy(x=>x.id==Dictionaryname.something您可
IEnumerable
列表T是一个自定义类型,该类型的一个成员是名为Id的int
我还有一个Dictionary
对象。第一个int是一个Id(这个Id将在IEnumerable
列表中。第二个int是一个评级编号
我想根据字典
中的评级排序IEnumerable
列表-最高优先
我可以通过if语句和循环来实现这一点,但我感觉这可以通过使用linq/lambda语句来实现
有人知道怎么做吗
我猜类似于list.OrderBy(x=>x.id==Dictionaryname.something
您可以简单地执行以下操作:
list.OrderByDescending(x => dictionary[x.id])
您可以简单地执行以下操作:
list.OrderByDescending(x => dictionary[x.id])
只要使用
只要使用
如果您想知道如何从字典中获取键的值,那么请参阅
字典
的文档,其中有许多关于如何执行此操作的示例。您可以在OrderBy
方法上使用自定义比较器,将键输入字典,并检查项目a
是否应以相同的位置出现在前面选项或项b
之后,或者如果您的字典是由id属性设置关键字的,您可以直接在OrderBy
lambai中访问字典如果您想知道如何从字典中获取关键字的值,请查看字典
的文档,其中有许多关于如何执行此操作的示例。您可以在OrderBy
方法上使用自定义比较器,该比较器键入字典并检查条目a
是否应位于条目b
之前、相同位置或之后,或者如果您的字典是由id属性键入的,则您可以直接在OrderBy
lambaIm中访问字典,然后尝试此操作现在…但你能解释得更清楚一点吗?它是如何根据字典中的评级数字(第二个Int)来排序的我问这个问题是因为字典中的第一个int是id,我想按评级编号对它进行排序我现在要尝试一下……但是你能解释得更清楚一点吗?它如何知道根据字典中的评级编号(第二个int)对它进行排序我这样问是因为字典中的第一个int是id,我想按评级编号对它进行排序