LinQ的第一天(老规矩:还是案例分析,从简单到难)
2011-12-16 16:58
183 查看
LINQ-TO-SQL:
案例1:基础模型
案例2:
案例3:简化上面的代码
案例4:
案例1:基础模型
static void Main(string[] args) { int[] int_array = { 1, 8, 5, 9, 15, 20 }; var filtered = from value in int_array//注意是var,可以帮助我们减少很多麻烦 where value > 4 select value; Console.WriteLine(filtered.GetType());//System.Linq.Enumerable+<WhereIterator>d__0`1[System.Int32] foreach (int i in filtered) { Console.Write(i + "");//8 5 9 15 20 } Console.WriteLine(); Console.WriteLine("The Next:"); double[] double_array={1.6,2.5,1.5,7.5}; IEnumerable<double> double_arrayQuery =//标准格式 from value in double_array where value > 2 select value; Console.WriteLine(double_arrayQuery.GetType());//System.Linq.Enumerable+<WhereIterator>d__0`1[System.Double] foreach (double testQuery in double_arrayQuery) { Console.Write(testQuery+"");//2.5 7.5 } }
案例2:
static void Main(string[] args) { int[] int_array = { 1, 8, 5, 9, 15, 20 }; var filtered = from value in int_array//注意是var where value > 4 orderby value//按默认的规则升序排列 select value; Console.WriteLine(filtered.GetType());//System.Linq.Enumerable+<WhereIterator>d__0`1[System.Int32] foreach (int i in filtered) { Console.Write(i + "");//5 8 9 15 20 } Console.WriteLine(); Console.WriteLine("The Next:"); double[] double_array={1.6,2.5,1.5,7.5}; IEnumerable<double> double_arrayQuery =//标准格式 from value in double_array where value > 2 orderby value descending//降序排列 select value; Console.WriteLine(double_arrayQuery.GetType());//System.Linq.Enumerable+<WhereIterator>d__0`1[System.Double] foreach (double testQuery in double_arrayQuery)//注意这里查询的是哪个变量,是SQL的变量 { Console.Write(testQuery+"");//7.5 2.5 } string[] names = { "Mr.w","Jack","Angrw"}; Console.WriteLine("The names is :"); foreach (string nametest in names) { Console.Write(nametest + ""); } Console.WriteLine(); IEnumerable<string> names_query = from name in names orderby name select name; Console.WriteLine("The Orderby of name is :"); foreach (string nametest in names_query) { Console.Write(nametest + ""); } Console.WriteLine(); names_query = from name in names orderby name descending select name; Console.WriteLine("The Orderby...Descending of name is :"); foreach (string nametest in names_query) { Console.Write(nametest + ""); } Console.WriteLine(); } The Result: /* System.Linq.OrderedEnumerable`2[System.Int32,System.Int32] 5 8 9 15 20 The Next: System.Linq.OrderedEnumerable`2[System.Double,System.Double] 7.5 2.5 The names is : Mr.w Jack Angrw The Orderby of name is : Angrw Jack Mr.w The Orderby...Descending of name is : Mr.w Jack Angrw */
案例3:简化上面的代码
static void Main(string[] args) { int[] int_array = { 1, 8, 5, 9, 15, 20 }; var filtered = from value in int_array//注意是var where value > 4 orderby value//按默认的规则升序排列 select value; Console.WriteLine(filtered.GetType());//System.Linq.Enumerable+<WhereIterator>d__0`1[System.Int32] Display(filtered, "Int"); double[] double_array={1.6,2.5,1.5,7.5}; IEnumerable<double> double_arrayQuery =//标准格式 from value in double_array where value > 2 orderby value descending//降序排列 select value; Console.WriteLine(double_arrayQuery.GetType());//System.Linq.Enumerable+<WhereIterator>d__0`1[System.Double] Display(double_arrayQuery, "Double"); string[] names = { "Mr.w","Jack","Angrw"}; IEnumerable<string> names_query = from name in names orderby name select name; Display(names_query,"String-orderby"); names_query = from name in names orderby name descending select name; Display(names_query, "String-orderby..descending"); } //为了简化我们写成方法调用 static void Display(IEnumerable<string> string_query, string welcome) //下面3个方法起到了方法重载作用 { Console.WriteLine("The {0} is :", welcome); foreach (string test in string_query) { Console.Write(test + ""); } Console.WriteLine(); } static void Display(IEnumerable<int> int_query, string welcome) { Console.WriteLine("The {0} is :", welcome); foreach (int test in int_query) { Console.Write(test + ""); } Console.WriteLine(); } static void Display(IEnumerable<double> double_query, string welcome) { Console.WriteLine("The {0} is :", welcome); foreach (double test in double_query) { Console.Write(test + ""); } Console.WriteLine(); } The Result: /* System.Linq.OrderedEnumerable`2[System.Int32,System.Int32] The Int is : 5 8 9 15 20 System.Linq.OrderedEnumerable`2[System.Double,System.Double] The Double is : 7.5 2.5 The String-orderby is : Angrw Jack Mr.w The String-orderby...descending is : Mr.w Jack Angrw */
案例4:
class Program { static void Main(string[] args) { Member[] persons ={ new Member(-10m, 21, "jack"), new Member(25m,25,"An"), new Member(100m,18,"Mr.w"), new Member(3000m,27,"deve") }; Display(persons,"The Array"); var betwtenn100M3000M = from e in persons where e.Pay >= 100m && e.Pay <= 3000m select e; Display(betwtenn100M3000M, "100m-300m"); var PaySort = from e in persons orderby e.Pay //默认是月薪从小到大 select e; Display(PaySort,"The Pay Sort"); var AgeSort = from e in persons orderby e.age descending //年龄从大到小 select e; Display(AgeSort, "The Age Sort"); } static void Display<T>(IEnumerable<T> T_query, string header)//泛型接口 { Console.WriteLine("{0} :", header); foreach (T test in T_query) { Console.WriteLine(test + ""); } Console.WriteLine(); } } class Member//成员 { private decimal pay;// 月薪 public decimal Pay//月薪属性 { get { return pay; } set { if (value >= 0m) { pay = value; } } } public string name;//这里如果不是public 外部将无法访问 public int age; public Member(decimal monthPay, int member_age, string member_name) { name = member_name; age = member_age; Pay = monthPay;//注意这里的大写Pay } public override string ToString()//重写string类的ToString方法 { return string.Format("Name is: {0} Age is:{1} MonthPay is:{2}",name,age,pay); } } The Result: /* The Array : Name is: jack Age is:21 MonthPay is:0 Name is: An Age is:25 MonthPay is:25 Name is: Mr.w Age is:18 MonthPay is:100 Name is: deve Age is:27 MonthPay is:3000 100m-300m : Name is: Mr.w Age is:18 MonthPay is:100 Name is: deve Age is:27 MonthPay is:3000 The Pay Sort : Name is: jack Age is:21 MonthPay is:0 Name is: An Age is:25 MonthPay is:25 Name is: Mr.w Age is:18 MonthPay is:100 Name is: deve Age is:27 MonthPay is:3000 The Age Sort : Name is: deve Age is:27 MonthPay is:3000 Name is: An Age is:25 MonthPay is:25 Name is: jack Age is:21 MonthPay is:0 Name is: Mr.w Age is:18 MonthPay is:100 */
相关文章推荐
- 从一个简单案例上手Spring MVC,同时分析Spring MVC面试问题
- UML简单介绍(十)——几个时序图的案例展示与分析
- PHP数组操作简单案例分析
- 基于Spark SQL 读写Oracle 的简单案例分析常见问题
- 基于SPARK SQL 读写ORACLE 的简单案例分析常见问题
- 实现采用客户/服务器通信模式,基于TCP网络通信协议的多客户端简单应用之案例分析
- 字符识别OCR研究二:简单案例分析 字符识别
- 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析
- 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析
- 前端 jquery-ajax 的简单案例分析和总结
- 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析
- 简单逆向分析使用案例(7)--Reverse001.exe 获取密码
- javascript简单链式调用案例分析
- Js如何判断客户端是PC还是手持设备简单分析
- 前端 jquery-ajax 的简单案例分析和总结
- UML简单介绍(十六)——类图的两个基本案例分析
- 心得13--jsp简单标签案例分析.doc
- led HAL简单案例分析
- struts2学习_简单的demo案例_第一天
- 心得13--jsp简单标签案例分析.doc