好的,这很有效.究竟是什么?

fie*_*ish 8 c# list anonymous-methods

我刚刚从一个网站上提取了这个片段,事实证明这正是我特定问题所需的解决方案.

我不知道它是什么(特别是委托和返回部分),并且消息来源没有解释它.

希望SO可以启发我.

myList.Sort(  delegate(KeyValuePair<String, Int32> x, KeyValuePair<String, Int32> y) 
              { 
                return x.Value.CompareTo(y.Value); 
              }
            );
Run Code Online (Sandbox Code Playgroud)

Dmy*_*iak 11

MyList.Sort有一个参数 - 负责比较项目的函数,因此列表可以根据它进行排序.

Next:delegate(x,y)定义函数本身,它接受KeyValuePair [String,Int32]类型的两个参数.

括号{...}中的内容是实际的比较逻辑:

return x.Value.CompareTo(y.Value);
Run Code Online (Sandbox Code Playgroud)

根据此定义比较2个整数值.

因此,您的列表将根据加入顺序中的整数值进行排序.


使用C#3.5我会像这样重写它:

mylist.Sort((x,y) => x.Value.CompareTo(y.Value));
Run Code Online (Sandbox Code Playgroud)