Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 订单IEnumerable<;T>;基于字典的对象_C#_.net_Linq_Generics_Dictionary - Fatal编程技术网

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,我想按评级编号对它进行排序