• Linq学习<一>


    lambda查询语法: var result =arrarylist.where(n=>n.contains("l"))  简化的委托方法实例

    linq查询结构:

    var  result = from  ------- in   arrayList            

                       where------

                       (order-------)

                        select  -------

    有点像sql写法:select * from table name where .我们可以简答记成将sql中select放在后面

    var是C#中的一个新关键字,用于声明一般的变量类型,特别适合于包含LINQ
    查询的结果。var关键字告诉C#编译器,根据查询推断结果的类型。这样,就不必提前声明从LINQ
    查询返回的对象类型了——编译器会推断出该类型

    下面例子张的数据源是前面声明的字符串数组stringArray。变量items只是数据源中某一元素的代表,类似
    于foreach语句后面的变量名。指定from子句,就可以只查找集合的一个子集,而不用迭代所有的
    元素。

      public void test()
            {
                Console.WriteLine("-----------Linq first Example------------------");
                string[] stringArray = new string[] {"cat","litter","cot","dog","love","like" };
    
                var result =                   //linq way,查询语法
                    from items in stringArray
                    where items.StartsWith("l")
                    select items;
                foreach (var item in result)
                {
                    Console.WriteLine(item);
                    
                }
                //,var是C#中的一个新关键字,用于声明一般的变量类型,特别适合于包含LINQ查询的结果。var关键字告诉C#编译器,根据查询推断结果的类型
            }
    

      linq是一种查询语法,还有一种方式语法,就是lambda,用起来更方便

       public void lambdaTest()
            {
                Console.WriteLine("-----------Lamada text------------------");
              
                string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" };
    
                var result = stringArray.Where(n => n.StartsWith("l"));  //Lambda way查询语法
                foreach (var item in result)
                {
                 
                    Console.WriteLine(item);
    
                }
            }
    

      2.linq排序

     public void LinqSortTest()
            {
                Console.WriteLine("-----------result after sort-------------------");
                string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" };
    
                var result =                   //linq way,查询语法
                    from items in stringArray
                    where items.StartsWith("l")
                   // orderby items descending    //ascending  默认从A——Z
                    orderby items.Substring(items.Length-1)   //从items的倒数第二字母开始排序
                    select items;
                foreach (var item in result)
                {
                    Console.WriteLine(item);
    
                }
            
            }
    

      用lamabda排序

      public void lambdaOrderTest()
            { 
            Console.WriteLine("-----------lambdaOrderTest-------------------");
                string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" };
    
                var result =stringArray.OrderBy(n=>n).Where(n=>n.Contains("l"));
               // var result = stringArray.OrderByDescending(n => n).Where(n=>n.Contains("l"));
               // var result = stringArray.OrderBy(n => n.Substring(n.Length - 1)).Where(n=>n.StartsWith("l"));
                foreach (var item in result)
                {
                    Console.WriteLine(item);
                }
            }
    

     3.用ramdon生成一个大的int数组进行操作

       public void SearchDataFromABigArray()
                {
                Console.WriteLine("--------------Get  Data from a big array----------------------");
                int[] intArray = GeneratorBigArray(12345678);
    
                var result = from items in intArray
                             where items < 10000
                             select items;
                foreach (var item in result)
                {
                    Console.WriteLine(item);
                }
            }
    

      linq基本寒素:sum,max,min,averge  注意sum时如果数据过大,对于32位会产生溢出错误,linq有Longcount(),也就是将结果转为64位,防止溢出错误,如下:

        Console.WriteLine(result.Sum(n=>(long)n));

     public void UsingFunctionOfLinq()
            {
                Console.WriteLine("----------------------using fuction in linq--------------------------");
                int[] intArray = GeneratorBigArray(12345678);
                var result = from items in intArray
                             where items > 1000
                             select items;
    
                Console.WriteLine("sum is:");
                Console.WriteLine(result.Sum(n=>(long)n));
                Console.WriteLine("max is:");
                Console.WriteLine(result.Max());
                Console.WriteLine("min is:");
                Console.WriteLine(result.Min());
                Console.WriteLine("average is :");
                Console.WriteLine(result.Average());
            }
    

      

    生成大数据函数:

    这里采用radom(0)来生成不一样的数据,赋值给int数组,

      private int[] GeneratorBigArray(int p)
            {
                Random genertor = new Random(0);
                int[] array = new int[p];
                for (int i = 0; i < p - 1; i++)
                {
                    array[i] = genertor.Next();
                }
                return array;
            }
    

      

  • 相关阅读:
    shell中标准输出,标准输入,标准错误输出详解
    shell 脚本 编辑颜色代码
    Docker容器:磁盘&内存&CPU资源限制实战
    Linux crontab 详解
    vsftp虚拟用户
    学习kail linux 几个不错的网站
    多线程协作方法sleep、yield、wait、join和同步和安全等问题
    Redis 命令参考
    JVM的内存区域划分(网上找的)
    工业软硬件系统名词
  • 原文地址:https://www.cnblogs.com/fjsnail/p/3226669.html
Copyright © 2020-2023  润新知