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());

  • 相关阅读:
    对jquery的 attr()和prop()理解
    你真的了解javascript吗
    js代码的一些小技巧
    导出导入数据库
    Mysql授权root用户远程登录
    Centos 忘记root密码怎么办?
    linux挂载概念简述:
    centos7防火墙设置
    centos 防火墙
    centos共享目录
  • 原文地址:https://www.cnblogs.com/lipengjiushiwo/p/2778206.html
Copyright © 2011-2022 走看看