我刚刚从一个网站上拿到了这段代码,事实证明它正是我解决特定问题所需要的。
我不知道它是什么(特别是委托和返回部分),源代码也没有解释它。
希望如此可以给我启迪。
myList.Sort(  delegate(KeyValuePair<String, Int32> x, KeyValuePair<String, Int32> y) 
              { 
                return x.Value.CompareTo(y.Value); 
              }
            );发布于 2009-11-20 13:02:26
MyList.Sort有一个参数-负责比较项目的函数,因此可以根据它对列表进行排序。
接下来:委托(x,y)定义了函数本身,它接受两个类型为KeyValuePairString,Int32的参数。
括号{...}中的内容是实际的比较逻辑:
return x.Value.CompareTo(y.Value);它根据this definition比较两个整数值。
因此,您的列表将根据这些整数的值按递增顺序进行排序。
使用C# 3.5,我会像这样重写它:
mylist.Sort((x,y) => x.Value.CompareTo(y.Value));发布于 2009-11-20 12:57:48
它是一个在列表上调用的排序函数,传递给它的对象是一个委托,Sort()调用该委托来实际执行两个元素之间的比较。
函数http://msdn.microsoft.com/en-us/library/0e743hdt.aspx上的MSDN页面
发布于 2009-11-20 13:03:02
myList.Sort //Sort using a your own compare function
  (
    // declare the compare function, returns a int, and receives two items
    delegate(KeyValuePair<String, Int32> x, KeyValuePair<String, Int32> y) 
    {
        // returns a int indicating whether the items are "equal" - equal being what is implemented it the appropriate compare function.
        return x.Value.CompareTo(y.Value);
    }
  );https://stackoverflow.com/questions/1768416
复制相似问题