用一个例子解释,首先定义一个数组,查询数组中的最大值:
int[] arr = { 123, 2, 3, 45, 654, 2324, 897, 56, 6554, 4, 3, 6, 8, 434 };
int max=0 ; foreach(int a in arr) { if(a>=max) max=a; } Console.Write("最大值:"+ max);
Console.WriteLine("arr的最大值:"+ arr.Max());
由此可以看出,LinQ To Objects是一种新的处理集合的方法,相对于旧方法中必须编写指定如何从集合检索数据的复杂的foreach循环,而LinQ方法只需要编写描述要检索的内容的声明性代码。
<span style="font-size:18px;"> //LinQ To Objects查询高级方法 //数组数据persons int[] arr = {123, 2, 3, 45, 654, 2324, 897, 56, 6554, 4, 3, 6, 8,434};</span>
Console.WriteLine("arr的最大值:"+ arr.Max()); Console.WriteLine("arr的最小值:" + arr.Min()); Console.WriteLine("arr的平均值:" + arr.Average()); Console.WriteLine("arr的数组元素个数:" + arr.Count()); Console.WriteLine("arr的总和:" + arr.Sum());
var result = arr.OrderBy(p => p.ToString().Substring(0, 1)); //按首字母排序 var result = arr.OrderBy(p => p.ToString().Substring(0, 1)).ThenBy(p => p); //2次排序 var t = arr.OrderBy(p => p.ToString().Substring(0, 1)); //对数组进行 var result = from p in t orderby p descending select p; //降序排列
var result = arr.Skip(2).Take(3);跳过2个值取后面的3个值 var result = arr.Skip(3); //跳过3个值取后面所有的值 var result = arr.SkipWhile(p => p > 4); //方法体部分是该LingQ语句不在往后执行的条件,当第一次遇到条件成立时取剩下的所有数据 var result = arr.TakeWhile(p => p > 4); //方法体部分是该LinQ语句提取数据的条件,当第一次遇到条件不成立的情况时停止执行
var result = arr.Distinct(); //把数组中重复的记录过滤掉
var result= System.Linq.Enumerable.Range(10,50); //生成连续的数列 var result = System.Linq.Enumerable.Repeat(DateTime.Now, 10); //生成10个相同的日期
通过这些小小的例子,对新的知识从不知道到了解,初步学习LinQ ToObjects是什么和怎么用,更加深入的理解需要更加深入的学习和实践!
原文地址:http://blog.csdn.net/zlts000/article/details/41413905