C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C#SortedList,按键获取值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我按降序排列了SortedList.

public class MyComparer : IComparer<int>
    {
        public int Compare(int x,int y)
        {
            if (x.CompareTo(y) > 0)
                return -1;
            return 1;
        }
    }
class Program
{
        static void Main(String[] args)
        {
            SortedList<int,bool> myList = new SortedList<int,bool>(new MyComparer());
            myList.Add(10,truE);
            bool check = myList[10];//In this place an exception "Can't find key" occurs
        }
}

当没有我自己的IComparer创建SortedList时,代码工作正常,不会发生异常.

解决方法

比较器实现无效;它违反了以下要求:

x.CompareTo(X) == 0

当它尝试查找给定键的完全匹配时,这会使排序列表混淆.

这是@L_675_2@简单的修复:

public int Compare(int x,int y)
{  
    return y.CompareTo(X); // Reverses the in-built comparison.
}

但是如果你想更普遍地解决这个问题,可以虑创建@L_675_2@ReverseComparer< T>,例如here提供的那个.

大佬总结

以上是大佬教程为你收集整理的C#SortedList,按键获取值全部内容,希望文章能够帮你解决C#SortedList,按键获取值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。