lambda查询语法: var result =arrarylist.where(n=>n.contains("l"))  简化的委托方法实例

linq查询结构:

var  result = from  ------- in   arrayList

where------

(order-------)

select  -------

有点像sql写法:select * from table name where .我们可以简答记成将sql中select放在后面

var是C#中的一个新关键字,用于声明一般的变量类型,特别适合于包含LINQ
查询的结果。var关键字告诉C#编译器,根据查询推断结果的类型。这样,就不必提前声明从LINQ
查询返回的对象类型了——编译器会推断出该类型

下面例子张的数据源是前面声明的字符串数组stringArray。变量items只是数据源中某一元素的代表,类似
于foreach语句后面的变量名。指定from子句,就可以只查找集合的一个子集,而不用迭代所有的
元素。

  public void test()
{
Console.WriteLine("-----------Linq first Example------------------");
string[] stringArray = new string[] {"cat","litter","cot","dog","love","like" }; var result = //linq way,查询语法
from items in stringArray
where items.StartsWith("l")
select items;
foreach (var item in result)
{
Console.WriteLine(item); }
//,var是C#中的一个新关键字,用于声明一般的变量类型,特别适合于包含LINQ查询的结果。var关键字告诉C#编译器,根据查询推断结果的类型
}

  linq是一种查询语法,还有一种方式语法,就是lambda,用起来更方便

   public void lambdaTest()
{
Console.WriteLine("-----------Lamada text------------------"); string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" }; var result = stringArray.Where(n => n.StartsWith("l")); //Lambda way查询语法
foreach (var item in result)
{ Console.WriteLine(item); }
}

  2.linq排序

 public void LinqSortTest()
{
Console.WriteLine("-----------result after sort-------------------");
string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" }; var result = //linq way,查询语法
from items in stringArray
where items.StartsWith("l")
// orderby items descending //ascending 默认从A——Z
orderby items.Substring(items.Length-1) //从items的倒数第二字母开始排序
select items;
foreach (var item in result)
{
Console.WriteLine(item); } }

  用lamabda排序

  public void lambdaOrderTest()
{
Console.WriteLine("-----------lambdaOrderTest-------------------");
string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" }; var result =stringArray.OrderBy(n=>n).Where(n=>n.Contains("l"));
// var result = stringArray.OrderByDescending(n => n).Where(n=>n.Contains("l"));
// var result = stringArray.OrderBy(n => n.Substring(n.Length - 1)).Where(n=>n.StartsWith("l"));
foreach (var item in result)
{
Console.WriteLine(item);
}
}

 3.用ramdon生成一个大的int数组进行操作

   public void SearchDataFromABigArray()
{
Console.WriteLine("--------------Get Data from a big array----------------------");
int[] intArray = GeneratorBigArray(12345678); var result = from items in intArray
where items < 10000
select items;
foreach (var item in result)
{
Console.WriteLine(item);
}
}

  linq基本寒素:sum,max,min,averge  注意sum时如果数据过大,对于32位会产生溢出错误,linq有Longcount(),也就是将结果转为64位,防止溢出错误,如下:

Console.WriteLine(result.Sum(n=>(long)n));

 public void UsingFunctionOfLinq()
{
Console.WriteLine("----------------------using fuction in linq--------------------------");
int[] intArray = GeneratorBigArray(12345678);
var result = from items in intArray
where items > 1000
select items; Console.WriteLine("sum is:");
Console.WriteLine(result.Sum(n=>(long)n));
Console.WriteLine("max is:");
Console.WriteLine(result.Max());
Console.WriteLine("min is:");
Console.WriteLine(result.Min());
Console.WriteLine("average is :");
Console.WriteLine(result.Average());
}

  

生成大数据函数:

这里采用radom(0)来生成不一样的数据,赋值给int数组,

  private int[] GeneratorBigArray(int p)
{
Random genertor = new Random(0);
int[] array = new int[p];
for (int i = 0; i < p - 1; i++)
{
array[i] = genertor.Next();
}
return array;
}

  

Linq学习<一>的更多相关文章

  1. Linq学习工具及Lamada表达式

    好东西.转载一个.以备学习 Linq学习工具:     http://www.linqpad.net/ Lamada表达式: Func<int, int, int> IntPow = (x ...

  2. linq学习

    最全的linq学习文章: http://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html

  3. (转)Linq学习笔记

    写在前面 最近在看Linq,在博客园看到这篇文章,写的通俗易懂,转来和大家一起做个分享.原文地址http://www.cnblogs.com/goscan/archive/2011/05/05/Lin ...

  4. C#之Linq学习笔记【转】

    写在前面 其实在09年就已经学习过Linq了,并被她那优美的语法所吸引,只是现在所在的公司还在使用VS2005在.Net2.0的框架下面的开发,所以Linq也很久没有用过了,最近看部门的同事对这个有些 ...

  5. LINQ to XML LINQ学习第一篇

    LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...

  6. LINQ学习系列-----1.3 扩展方法

    这篇内容继续接着昨天的Lambda表达式的源码继续下去.昨天讲了Lambda表达式,此篇讲扩展方法,这两点都是Linq带来的新特性.    一.扩展方法介绍   废话不多说,先上源码截图: 上图中Ge ...

  7. LINQ学习系列-----2.3 迭代器带来的延迟查询

    此篇博文承接上一篇博文: LINQ学习系列-----2.2 迭代器 一.第一次执行                      废话不多说,上源码: 执行结果下图: 为什么会这样?其实原因很简单 fro ...

  8. Linq学习以及简单用法

    Linq学习 Linq(language Intergrated Query)即语言集成查询 LINQ是一组语言特性和API,使得你可以使用统一的方式编写各种查询.用于保存和检索来自不同数据源的数据, ...

  9. linq学习笔记

    最近在学习linq的一些基础知识,看了c#高级编程及阅读了园子内部几篇优秀的博文,有所体会,感觉应该记录下来,作为以后复习使用.都是一些最基础的知识,大致分为三个部分:linq预备知识:linq查询: ...

  10. 【转】【收藏】LINQ学习心得分享--------(二)LINQ语法详解

    原地址:http://blog.csdn.net/xuemoyao/article/details/8053444   通过上一章节的学习,相信大家已经掌握了学习LINQ的前期的准备知识.在这一节里, ...

随机推荐

  1. SQL Server数据库优化经验总结

    优化数据库的注意事项: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert, ...

  2. 本地连接远程环境mysql报错:Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

    问题现象:本机连接远程环境的mysql数据库报错,提示本机ip无法连接到mysql服务器. 问题原因:本机对远程mysql数据库没有访问权限. 解决方法:在远程mysql数据库添加本机ip的访问权限: ...

  3. (转)Oracle中动态SQL详解

    本文转载自:http://www.cnblogs.com/gaolonglong/archive/2011/05/31/2064790.html 1.静态SQLSQL与动态SQL Oracle编译PL ...

  4. StringBuilder与StringBuffer的区别

    相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类.St ...

  5. iOS平台下闪退原因汇总(一):"Ran out of trampolines of type 0/1/2" 运行时间错误

    "Ran out of trampolines of type 0/1/2" 运行时间错误通常出现在使用大量递归泛型时.要看到这个错误需要连接着设备直接将项目build到设备里运行 ...

  6. IDEA实用的第三方插件和工具介绍设置

    一:grep console grep-console插件可以让idea显示多颜色调试日志,使Log4j配置输出的不同级别error warn info debug fatal显示不同颜色 开发起来区 ...

  7. Burpsuite模块—-Intruder模块详解

    一.简介 Burp Intruder是一个强大的工具,用于自动对Web应用程序自定义的攻击,Burp Intruder 是高度可配置的,并被用来在广范围内进行自动化攻击.你可以使用 Burp Intr ...

  8. PHP下生成非重复的id

    PHP在多进程运行的情况下,如果不采用内存锁或者文件锁,基本没办法能解决生成唯一Id的问题.试过了静态变量.单例模式等等.查询到php里的uniqid()函数,最后还是找到了一个折中方式,虽然还是有可 ...

  9. 6410在rvds下编译启动代码报错分析

    contains invalid call from '~PRES8' function to 'REQ8' function main RVDS编译出现contains invalid call f ...

  10. windows下安装ubuntu 12.04---利用ubuntu的iso包中的wubi.exe工具安装

    一.下载ubuntu-12.04-desktop-amd64.iso后,用winrar打开,提取出wubi.exe这个文件.把ubuntu-12.04-desktop-amd64.iso和wubi.e ...