zoukankan      html  css  js  c++  java
  • C# 中List类的Find,Exists,FindAll,FindIndex ,FindLast ,FindLastIndex等方法的应用举例

    C# 中List类的Find,Exists,FindAll,FindIndex ,FindLast ,FindLastIndex等方法的应用举例

    以Exists为例,MSDN中是这样叙述的

    确定 List<(Of <(T>)>) 是否包含与指定谓词所定义的条件相匹配的元素。

    我一直都认为编写MSDN文档的人语文是好的令人发指啊!

           相信很多人都深有体会,这里每个字都认识,放一起完全不知所云,看了好多例子才知道是怎么回事,不知道是我肤浅,还是技术总是要深奥。

           总结一下,写了一个通俗点的例子,希望能对看到的人有用。

    static void Main(string[] args)//主函数即入口函数,不知道什么意思的面壁吧!
                    {
                            List<decimal> list1=new List<decimal>();//此处<>内是泛型的概念,不知道
                                                                                //的话找本教材看下吧,感觉就像是宏
    
                                                                                                         // 替换
                            for(int i=0; i<100;i++)                         //生成链表
                            {
                                    list1.Add(i);
                            }
                                    
    
                            if (list1.Exists(MatchPRE))//调用方法,谓词匹配函数的调用,这是调用您自定义的函
    
                                                                                                                                             //数MatchPRE
                                    Console.WriteLine("ok");//若list1中存在99,则输出ok
                            else
                                    Console.WriteLine("fail");//若list1中不存在99,则输出fail
                            Console.ReadLine();
                    }
                    private static bool MatchPRE(decimal p)//条件匹配函数,list1中每个元素都会传入P中
    
                                                                                                //匹配后函数返回
                    {
                           if (p == 99)//此句为匹配条件,如果匹配,返回,你可以随意更改成你想要的值
                                    return true;
                            else
                            {
                                    return false;
                            }
                    }

    关于List(T).Sort方法

    1.你可一采用第一个方法,这个方法为默认方法,对于T为数时将List的成员按照从小到大排列。
    2.如果不符合要求则你需要使用第二个方法,实现Comparison<(Of <(T>)>) 泛型委托。即下面的例子
    3.也可是利用实现比较器接口的方法实现,即最后两种方法。
        static void Main(string[] args)
                    {
                           Random _random = new Random();//随机对象
                            List<int> _iList = new List<int>();//列表对象
                            for (int i = 0; i < 10; i++)
                            {
                                    _iList.Add( _random.Next(0,10)); //随机函数创建列表
                            }
                            Console.WriteLine("排序前");
                            for (int i = 0; i < 10; i++)
                            {
                                    Console.WriteLine(_iList[i]);//排序前输出
                            }
    
                            _iList.Sort(CompareListBig);//执行排序
                            Console.WriteLine("排序后");
                            for (int i = 0; i < 10; i++)
                            {
                                    Console.WriteLine(_iList[i]);//排序后输出
                            }
                            Console.ReadLine();
                    }
                    private static int CompareListBig(int _a,int _b)//由大到小
                    {
                            int _temp = _a - _b;
                            if (_temp < 0) return 1;
                            if (_temp > 0) return -1;
                            return 0;
                    }
                    private static int CompareListSmall(int _a, int _b)//由小到大
                    {
                            int _temp = _a - _b;
                            if (_temp> 0) return 1;
                            if (_temp < 0) return -1;
                             return 0;
                    }

     

     

     

     

        
    作者:wanglei_wan
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    *三维数组的初始化及遍历三个for循环
    *二维数组的初始化
    用while判读循环语句1+1/2!+1/3!+...1/20!的和阶乘的计算方法 式:n!=n*(n-1)!
    求一组数组各个元素的和*
    *求一组数组各个元素的和*
    使用for循环输出杨辉三角-还是不懂得需要复习
    使用for循环输出空心的菱形的思路-还是没有办法理解
    Break用法再举例
    continue用来结束本次循环 break用来结束整个循环体
    LeetCode.1154-一年中的第几天(Day of the Year)
  • 原文地址:https://www.cnblogs.com/because/p/2613635.html
Copyright © 2011-2022 走看看