• C# LinQ的基本子句、协变与异变


                //1.from 子句:
                int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                var query = from n in arr
                            where n > 3
                            select n;
                foreach (var i in query)
                {
                    Console.WriteLine("" + i);
                }
    
    
                //2.select 子句:
                int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                var query = from n in arr
                            select n * 2;
                foreach (var i in query)
                {
                    Console.WriteLine("" + i);
                }
    
    
                //3.where 子句:
                int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                var query = from n in arr
                            where test(n) > 5
                            select n;
                foreach (var i in query)
                {
                    Console.WriteLine(i);
                }
    
                //4.let 子句:
                int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                var query = from n in arr
                            let num = n * 2
                            where num > 5
                            select n;
                foreach (var i in query)
                {
                    Console.WriteLine(i);
                }
    
                //5.order by 子句:
                int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                var query = from n in arr
                            where n > 3
                            orderby n descending
                            select n;
                foreach (var i in query)
                {
                    Console.WriteLine(i);
                }
    
    
                //6.group by 子句:
                int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                var query = from n in arr
                            where n > 1
                            group n by n % 2;
                foreach (var i in query)
                {
                    foreach (var j in i)
                    {
                        Console.WriteLine(j);
                    }
                }
    
                //7.into  子句:
                int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                var query = from n in arr
                            where n > 1
                            group n by n % 2 into temp
                            from sn in temp
                            select sn;
                foreach (var i in query)
                {
                    Console.WriteLine(i);
                }
    
    
                //8.join  子句:
                int[] arrA = { 0, 1, 2, 4, 5, 6, 7, 8, 9 };
                int[] arrB = { 0, 3, 5, 6, 9 };
                var query = from n in arrA
                            join ni in arrB on n equals ni
                            select ni;
                foreach (var i in query)
                {
                    Console.WriteLine(i);
                }
                /*
                 * 1.协变与异变:
                 * 协变:指能够使用与原始指定的派生类型相比,派生程度更大的类型
                 * string-->object
                 * 逆变:指能够使用派生程度更新的类型
                 * object-->string
                 * */
                string[] arr = { "C#", "java", "javascript", "VC", "VB", "VB.net", "C++" };
                var query = from n in arr
                            group n by n.Length into lentGroup
                            orderby lentGroup.Key  //协变与逆变
                            select lentGroup;
                foreach (var i in query)
                {
                    Console.WriteLine("" + i.Key);
                    foreach (var str in i)
                    {
                        Console.WriteLine("" + str);
                    }
                }
  • 相关阅读:
    树形结构基础
    最长公共子序列
    四 过滤模式 map Only
    三 概要模式 2) MR倒排索引、性能分析、搜索干扰词。
    三 概要模式 1)数值概要 (单词计数记录计数最大值/最小值/计数平均值、中位数、标准差)
    一 梳理 从 HDFS 到 MR。
    个人学习源码的 HBase误区的总结 与 架构图
    15 hbase 学习(十五)缓存机制以及可以利用SSD作为存储的BucketCache
    13 hbase源码系列(十三)缓存机制MemStore与Block Cache
    HBase 系统架构
  • 原文地址:https://www.cnblogs.com/parkerchen/p/12853680.html
Copyright © 2020-2023  润新知