zoukankan      html  css  js  c++  java
  • LinqToSql(一)

    最近在看linqtosql,这里就当做笔记本了吧!

    隐含类型局部变量
    1 先介绍隐含类型局部变量
    2 var age=18;
    3 var username="冰雪乾坤";
    4 var userlist=new[] {"a","b","c"}
    5 foreach(var user in userlist)
    6 {
    7 console.writeline(user);
    8 }

    匿名类型

    匿名类型
    1 var data=new {username="冰雪乾坤",age=18}
    2 console.writeline("username:{0} age:{1}",data.username,data.age);
    3 这里的var 是懒人类型,我们不需要管他是什么类型,他将会自我匹配
    扩展方法
     1 public static calss helper
     2 {
     3 public  static string MDHash(this string s)
     4 {
     5 return system.web.security.formsauthentication.hashPasswordforstoringinconfigfile(s,"md5")
     6 }
     7 
     8 public static bool In(this object o,IEnumerable b)
     9 {
    10 foreach(object obj in b)
    11 {
    12 if(obj==o)
    13 {
    14 return true;
    15 }
    16 return false;
    17 }
    18 }
    19 // diaoyong kuozhan
    20 console.writeline("123456".D5Hash());
    21 console.writeline("1".In(new[]{"1","2","3"}));
    22 }
     1 Public calss person
     2 {
     3 public string username{get;protect set;}
     4 public int age{get;set;}
     5 public Person()
     6 {
     7 this.username="冰雪乾坤";
     8 }
     9 }
    10 Person p=new Person();
    11 console.writeline(p.username);

    对象初始化器

     1 public class Person
     2 {
     3 public string username{get;set;}
     4 public int age{get;set;}
     5 public override stringToString()
     6 {
     7 return string.Format("username:{0} age{1}",this.username,this.age
     8 }
     9 }
    10 
    11 
    12 Person p=new Person(){username="qiankun",age=18}
    13 console.writeline(p.tostring());
    14   编译器会自动为你做setter操作,使得原本几行的属性赋值操作能在一行中完成。这里需要注意:
    15 
    16 l         允许只给一部分属性赋值,包括internal访问级别
    17 
    18 l         可以结合构造函数一起使用,并且构造函数初始化先于对象初始化器执行
    list init
     1  public class Person
     2 
     3     {
     4 
     5         public string username { get; set; }
     6 
     7         public int age { get; set; }
     8 
     9         
    10 
    11         public override string  ToString()
    12 
    13         {
    14 
    15         return string.Format("username:{0} age:{1}", this.username, this.age);
    16 
    17         }
    18 
    19 } 
    20 
    21 
    22 var persons =new list<person>{ 
    23                            new Person{username="q",age=18},
    24                            new Person{username="a",age=18}
    25 }
    26 
    27 foreach(var p in persons)
    28 {
    29     console.WriteLine(ptostring);
    30 }
    Lambda表达式
    1 var list =new [] {"aa","bb","ac"};
    2 var resoult = Array.FindAll(list,s=>(s.IndexOf("a")>-1));
    3 
    4 foreach(var v in result)
    5 {
    6        Console.WriteLine(v);
    7 }
    复杂的例子
     1  public delegate int mydog(int a,int b);
     2 
     3  public static class LambdaTest
     4  { 
     5        public static int opr(this int a,int b,mydg dg)
     6         {
     7             return dg(a,b);
     8         }
     9  }
    10 
    11 
    12 Console.WriteLine(1.oper(2,(a,b)=>a+b));
    13 Console.WriteLine(2.oper(1,(a,b)=>a+b));
    查询
     1 var persons=new List<Person>{
     2       new Person{username="A",age=18},
     3       new Person {username="B",age=20},
     4       new Person {username="C",age=22}
     5 };
     6  
     7 var selectperson =from p in persons
     8                            where p.age>=21
     9                            select p.username.ToUpper();
    10 foreach(var p in selectperson)
    11 {
    12     console.writeLine(p);
    13 }

    等价于
    var selectperson=persons.where(p=>p.age>=21).select(p=>p.username.ToUpper());

  • 相关阅读:
    Leetcode 811. Subdomain Visit Count
    Leetcode 70. Climbing Stairs
    Leetcode 509. Fibonacci Number
    Leetcode 771. Jewels and Stones
    Leetcode 217. Contains Duplicate
    MYSQL安装第三步报错
    .net 开发WEB程序
    JDK版本问题
    打开ECLIPSE 报failed to load the jni shared library
    ANSI_NULLS SQL语句
  • 原文地址:https://www.cnblogs.com/lipengjiushiwo/p/2778206.html
Copyright © 2011-2022 走看看