zoukankan      html  css  js  c++  java
  • C# 基础笔记

     
        一、数据类型
            1.var (匿名类型)弱类型
                可以自动检测数据类型;
     
            2.匿名类型对象 (对象初始化)
                Person p = new Person{Id=1,Name="aaaa"}
     
            3.lanbda 表达式    基础使用用法
     
                // 委托是把一个方法作为一个参数传递给另一个方法
     
                委托 
                // 无餐无返的委托
                public delegate void MyDelegate1();
     
    /*************************************************************/
                // 有餐无返的委托
                public delegate void MyDelegate2(int i);
     
     
                // 有餐返回是 boolean 类型
                public delegate void MyDelegate3(int i);
     
     
     
                // 静态方法
                static void Show()
                {
                    Console.WriteLine("Show");
                }
                // Main 方法里写
                static void Main(string[] args)
                {
     
                    // 无餐写法
                    MyDelegate1 del = ()=>
                    {
                        Console.WriteLine("这是我的 del 方法。")
                    }
     
                    // 调用输出
                    del();
     
                    输出结果:   这是我的 del 方法。
     
                  // 有参数无返回值
                    MyDelegate2 del2 = (a)=>
                    {
                        Console.WriteLine("del 方法"+a);
                    }
                    // 调用输出
                    del2(12);
     
                    输出结果:   del 方法12
                ********************************************************
     
                    // 有参返回是 bool 结果
     
                    MyDelegate3 del3 = (a)=> a>12;
     
                ********************************************************
     
                // 微软提供的 Action 委托 有 16 中重载方法 共有 16 参数。
                使用方式:
     
                    // 无返回值
                    Action a = (a)=>{Console.WriteLine("Hello");}
     
                    // 有返回值
                    Action <int,string> a1 = (b1,b2)=>
                    {
                        Console.WriteLine("Hello"+a1);
                    }
     
                    List<int> list = new List<int>();
                    // 原生写法
                    list.Where((num)=>{return num>12;})
                    // 简写
                    list.Where(m=>m>12);
     
                }
     
     
                // 微软提供的 Action 委托 有 16 中重载方法 共有 16 参数。
                使用方式:
     
              
                // 无返回值
                Action a = (a) => { Console.WriteLine("Hello"); }
                    // 有返回值
                Action<int, string> a1 = (b1, b2) =>
                    {
                        Console.WriteLine("Hello" + a1);
                    }
                    List<int> list = new List<int>();
                // 原生写法
                list.Where((num) => { return num > 12; })
                    // 简写
                    list.Where(m => m > 12);
     
     
     
              
      集合常用的方法:
                    Any():判断集合是否包含元素。
                    Distinct():去除重复数据。
                    排序:指定的列排序
                        升序(list.OrderBy(m => m.Id))
                        降序(list.OrderByDescending(m => m.Id))
                    注意:在 EF 里使用 skip 和 Take 分页。必须排序。list 集合里不用。
                    Skip(int i): 跳过 n 条数。  Take(int i):每页显示 n 条数据。
                    Except(): 排除集合中的数据。原集合数据不变。
                    Union(): 把集合中的数据联合到另一个集合中。原集合数据不变。
                    分组:常用的五个聚合函数    // 方便统计数据。
                    sum:求和 count:总数 max:最大值 min:最小值 avg:平均分
                    分组的作用:方便统计数据。
                    SelectMany: 把集合中的对象拼接到另一个集合中。具体百度一下。
                    Jon(): 链表。
     
         示例用法:
                   
        // 表一
        public class Tab1
        {
            public int Tab1Id { get; set; }
            public string Name { get; set; }
        }
        // 表二
        public class Tab2
        {
            public int Tab2Id { get; set; }
            public string Tab2Name { get; set; }
            public int Tab1Id { get; set; }
        }
     List<Tab1> tab1 = new List<Tab1>
             {
                  new Tab1{Tab1=1,Name="班级1"},
                  new Tab1{Tab1=2,Name="班级2"},
                  new Tab1{Tab1=3,Name="班级3"}
             }
            List<Tab2> tab2 = new List<Tab2>
            {
                new Tab2{Tab2Id=1,Tab2Name="张三1",Tab1Id=1},
                new Tab2{Tab2Id=2,Tab2Name="张三2",Tab1Id=1},
                new Tab2{Tab2Id=3,Tab2Name="张三3",Tab1Id=1},
                new Tab2{Tab2Id=4,Tab2Name="张三4",Tab1Id=1},
                new Tab2{Tab2Id=5,Tab2Name="张三5",Tab1Id=1},
                new Tab2{Tab2Id=6,Tab2Name="张三6",Tab1Id=1}
            };
     
                    链接:
                     
              // 接收 链接好的数据
                var result = tab2.Where(tab2, t2 => t2.Tab1Id, (t1, t2) => new { t1.Name, t2.Tab2Name });
                // 输出链表结果
                foreach (var item in result)
                {
                    Console.WriteLine(item.Name + " " + item.Tab2Name);
                }
                linq(): 跟 lanbda 没什么区别
                    // lanbda 写法结果
                foreach (var item in list.Where(m => m.Id == 6))
                {
                    Console.WriteLine(item.Id);
                }
                // linq 写法 比 lanbda 可读性强
                var data = from tab1 in list where tab1.Tab1Id < 6 select tab1;
                // linq 写法输出结果
                foreach (var stu in data)
                {
                    Console.WriteLine(stu.Id);
                }
                lanbda 与 linq 结合使用
                    先写 linq 在写点括起来 使用。
                    开发中的调试小技巧:// 在开发中不起作用。
                    public override string ToString()
            {
                return $"id:{Id}  name:{Name}";
            }
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    前端布局
    mysql默认数据库
    js 计算两个颜色之间的渐变色值 10个色值
    chrome network中的stalled阶段耗时含义
    linux软件源码安装与封装包安装
    如何分辨linux文件颜色
    linux 文件权限
    linux端口查看
    suse linux光盘挂载
    记一次tortoiese git误提交的问题
  • 原文地址:https://www.cnblogs.com/FGang/p/7082912.html
Copyright © 2011-2022 走看看