什么是Linq to sql
Linq to sql(或者叫DLINQ)是LINQ(.NET语言集成查询)的一部分,全称基于关系数据的.NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等组成了强大的LINQ。
要学好LINQ查询语法,就不得不先理解C# 3.0的一些新特性,下面一一简单介绍。
隐含类型局部变量
|
var age = 26; var username = "zhuye"; var userlist = new [] {"a","b","c"}; foreach(var user in userlist) Console.WriteLine(user); ![]() |
|
var data = new {username = "zhuye",age = 26}; Console.WriteLine("username:{0} age:{1}", data.username, data.age); ![]() |
|
public static class helper { public static string MD5Hash(this string s) { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s,"MD5"); } public static bool In(this object o, IEnumerable b) { foreach(object obj in b) { if(obj==o) return true; } return false; } } // 调用扩展方法 Console.WriteLine("123456".MD5Hash()); Console.WriteLine("1".In(new[]{"1","2","3"})); ![]() |
|
public class Person { public string username { get; protected set; } public int age { get; set; } public Person() { this.username = "zhuye"; } } Personp = new Person(); //p.username = "aa"; Console.WriteLine(p.username); |
|
public class Person { public string username { get; set; } public int age { get; set; } public override string ToString() { return string.Format("username:{0} age:{1}", this.username, this.age); } } Personp = new Person() {username = "zhuye", age=26}; Console.WriteLine(p.ToString()); ![]() |
集合初始化器
|
public class Person { public string username { get; set; } public int age { get; set; } public override string ToString() { return string.Format("username:{0} age:{1}", this.username, this.age); } } varpersons = new List<Person> { new Person {username = "a", age=1}, new Person {username = "b", age=2}}; foreach(var p in persons) Console.WriteLine(p.ToString()); ![]() |
|
varlist = new [] { "aa", "bb", "ac" }; varresult = Array.FindAll(list, s => (s.IndexOf("a") > -1)); foreach(var v in result) Console.WriteLine(v); ![]() |
|
public delegate int mydg(int a, int b); public static class LambdaTest { public static int oper(this int a, int b, mydg dg) { return dg(a, b); } } Console.WriteLine(1.oper(2, (a, b) => a + b)); Console.WriteLine(2.oper(1, (a, b) => a - b)); ![]() |
|
varpersons = new List<Person> { new Person {username = "a", age=19}, new Person {username = "b", age=20}, new Person {username = "a", age=21}, }; varselectperson = from p in persons where p.age >= 20 select p.username.ToUpper(); foreach(var p in selectperson) Console.WriteLine(p); ![]() |
| varselectperson = persons.Where(p=>p.age>=20).Select(p=>p.username.ToUpper()); |
