匿名函数如何作为方法的参数,但不是构造函数参数?SortedSet <T>和匿名IComparer <T>在构造函数中不起作用
如果我创建一个List<string>
,它具有以下签名排序方法:
public void Sort(IComparer<T> comparer)
哪里了以下工作:
List<string> list = new List<string>();
list.Sort((a,b) => a.CompareTo(b));
的SortedSet有类似签名的构造:
public SortedSet(IComparer<T> comparer)
但在构造函数中使用匿名函数时失败。以下是无效的:
SortedSet<string> set = new SortedSet<string>((a, b) => a.CompareTo(b));
创建像预期的那样排序类工作得很好:
public class MyComparer : IComparer<string>
{
public int Compare(string a, string b)
{ return a.CompareTo(b); }
}
SortedSet<string> set = new SortedSet<string>(new MyComparer());
感谢您的解释和包装代码。我现在看到,我正在使用比较而不是IComparere 排序。 –
2010-06-28 08:30:29