首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >好了,这起作用了。它到底是什么?

好了,这起作用了。它到底是什么?
EN

Stack Overflow用户
提问于 2009-11-20 12:54:13
回答 6查看 329关注 0票数 8

我刚刚从一个网站上拿到了这段代码,事实证明它正是我解决特定问题所需要的。

我不知道它是什么(特别是委托和返回部分),源代码也没有解释它。

希望如此可以给我启迪。

代码语言:javascript
运行
复制
myList.Sort(  delegate(KeyValuePair<String, Int32> x, KeyValuePair<String, Int32> y) 
              { 
                return x.Value.CompareTo(y.Value); 
              }
            );
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-20 13:02:26

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

接下来:委托(x,y)定义了函数本身,它接受两个类型为KeyValuePairString,Int32的参数。

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

代码语言:javascript
运行
复制
return x.Value.CompareTo(y.Value);

它根据this definition比较两个整数值。

因此,您的列表将根据这些整数的值按递增顺序进行排序。

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

代码语言:javascript
运行
复制
mylist.Sort((x,y) => x.Value.CompareTo(y.Value));
票数 11
EN

Stack Overflow用户

发布于 2009-11-20 12:57:48

它是一个在列表上调用的排序函数,传递给它的对象是一个委托,Sort()调用该委托来实际执行两个元素之间的比较。

函数http://msdn.microsoft.com/en-us/library/0e743hdt.aspx上的MSDN页面

票数 0
EN

Stack Overflow用户

发布于 2009-11-20 13:03:02

代码语言:javascript
运行
复制
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);
    }
  );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1768416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档