特别喜欢同事看到我写了一句小排序的时候说,他当然喜欢Linq了,虽然我只是baidu之,不知其然也不知其所以然。

基本格式 var<变量> = from <项目> in <数据源> where <表达式> orderby <表达式> select <项目>

1. from & select

        static void Main(string[] args)
{
string[] abc = { "a3", "af", "de" };
var result = from a in abc
select a;
foreach (var r in result)
{
Console.WriteLine(r);
}
Console.ReadLine();
}

from为必须子句,select不必须。

多个from子句

static void Main(string[] args)
{
string[] abc = { "a3", "af", "de" };
string[] de = { "af","de" };
var result = from a in abc
from d in de
where a.Contains(d)
select a;
foreach (var r in result)
{
Console.WriteLine(r);
}
Console.ReadLine();
}

2.where

where表示条件,也可有多个。或者省略where用&&连接

        static void Main(string[] args)
{
string[] abc = { "a3", "aff", "de" };
string[] de = { "af","de" };
var result = from a in abc
from d in de
where a.Contains(d)
&& a.Length> //where a.Length>2
select a;
foreach (var r in result)
{
Console.WriteLine(r);
}
Console.ReadLine();
}

3.order by

ascending/descending 默认 ascending

       static void Main(string[] args)
{
string[] abc = { "a3", "aff", "de" };
string[] de = { "af","de" };
var result = from a in abc
from d in de
where a.Contains(d)
orderby a.Length descending
select a;
foreach (var r in result)
{
Console.WriteLine(r);
}
Console.ReadLine();
}

4.group by

在LINQ中,group对from语句进行分组,返回元素类型为IGrouping<TKey,TElement>的对象序列,因此每个返回需再次循环。

如下:

     static void Main(string[] args)
{ string[] xyz = { "a", "bc", "def" };
var x = from o in xyz
group o by o.Length;
foreach (var m in x)
{
Console.Write(m.Key);
foreach (var p in m) Console.WriteLine(p);
}
Console.ReadLine();
}

注意 group的语法为group x by y, 同时group在使用时,末尾没有select。

5. into

INTO 创建临时标识符用于保存查询的集合。

  static void Main(string[] args)
{
string[] xyz = { "a", "bc", "def" };
var x = from o in xyz
group o by o[] into z
select z; foreach (var m in x)
{
Console.Write(m.Key);
foreach (var p in m) Console.WriteLine(p);
}
Console.ReadLine();
}

我知道这个例子略显神经,可是白痴的我还没发现into语句究竟干嘛用,也许,明天的明天,我就会发现了。

因为——只要在路上,总会遇到庆典~

LINQ 基本子句之一 (select/where/group/into)的更多相关文章

  1. LINQ查询操作符之Select、Where、OrderBy、OrderByDescending、GroupBy、Join、GroupJoin及其对应的查询语法

    介绍    ·Select - Select选择:延迟    ·Where - Where查询:延迟    ·OrderBy - 按指定表达式对集合正序排序:延迟    ·OrderByDescend ...

  2. .NET 3.5(5) - LINQ查询操作符之Select、Where、OrderBy、OrderByDescending

    .NET 3.5(5) - LINQ查询操作符之Select.Where.OrderBy.OrderByDescending 介绍    ·Select - Select选择:延迟    ·Where ...

  3. mysql---select的五种子句学习(where、group by、having、order by、limit)

      mysql---select的五种子句学习(where.group by.having.order by.limit) 分类: Mysql学习2012-09-27 16:14 1533人阅读 评论 ...

  4. Linq基础操作之Select,Where,OrderBy,ThenBy源码分析

    Linq基础操作之Select,Where,OrderBy,ThenBy源码分析 二:Select 它是延迟执行.yield有得一拼,因为他们都是生成了一个枚举类. if (source is TSo ...

  5. LINQ to SQL语句(6)之Group By/Having

    适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group ...

  6. LINQ-Where子句与select子句

    1.Where子句 where子句的作用就是筛选元素,除了开始喝结束位置,where子句几乎可以出现在LINQ表达式的任意位置.一个LINQ表达式中可以有Where子句,也可以没有:可以有一个,可以有 ...

  7. 从linq的一次优化实践看group by+Min/Max()处理数据后需要额外的其他列问题

    问题简化如下: 假设有第三方的表结构如下(可能会出现完全相同的重复数据): 1.写SQL语句,查询每个学生的,userid.最高分.最高分的科目.最高分的考点.最低分.最低分科目.最低分考点(分数相同 ...

  8. Linq 构造复杂Json 多表group by

    一个主表A(a1,a2),子表B(a1,b1,b2) ,想得到的结果是 [{a1,a2,Info [{b1,b2},{b1,b2},...}]] var list= from a in A join ...

  9. LINQ 基本子句之三 let

    let子句,可以作为临时变量储存表达式的结果,但是let子句一旦初始化后无法再次进行更改. 1. static void Main(string[] args) { string[] names = ...

随机推荐

  1. Python 单词字母顺序不变且所有倒排

    翻出google測试project师的一道题目: 设计一个函数,不论什么语言都能够,实现下面功能: 一个句子,将句子中的单词所有倒排过来,但单词的字母顺序不变.eg.  this is a real ...

  2. [bzoj2301: [HAOI2011]Problem b] 乞讨

    </pre><pre code_snippet_id="507886" snippet_file_name="blog_20141104_2_53831 ...

  3. 2台linux机器免密码互相登陆

    一,如何使2台机器不需要密码互相登陆到对方呢? 这个和使用密钥的登陆Linux系统非常相似,也是将自己的公钥传到要登录的服务器上去修改权限即可. 1,A机器: 执行ssh-keygen命令,一路回车. ...

  4. Android多媒体开发-- OpenMax IL简介

    1.openmax 简介 http://www.khronos.org/openmax/ OpenMax是一个多媒体应用程序的框架标准,由NVIDIA公司和Khronos在2006年推出. OpenM ...

  5. wamp安装

    下载之后双击文件进行安装选择:I accept the agreement ,点击Next. 一直单击NEXT 安装完成后运行wamp,在桌面右下角即会出现wamp的图标,图标最初是红色的,然后变为橙 ...

  6. 用户"IIS APPPOOL\xxxxxxxx"登录失败解决方案

    Server Error in '/' Application.-------------------------------------------------------------------- ...

  7. vb的property 和event

    Event 语句 定义用户自定义的事件. 语法 [Public] Event procedurename [(arglist)] Event 语句包含下面部分: 部分 描述 Public 可选的.指定 ...

  8. WebService使用的一些总结

    什么是WebService: 这个不用我在这里废话,网上的资料一搜一大把,如果你没有接触过这方面的知识,你可以先去网上查一下.这里我只想说一下我印象比较深刻的几点: WebService是基于soap ...

  9. SSH安全登录(远程管理)22端口

    Linux管理Linux 先加密再发送数据,更安全 一    联机加密工具         非对称钥匙对加密         安装    默认安装    openssh              启动 ...

  10. 【maven学习笔记】 01 初见

    想学maven,maven是ant的替代品. 1:下载 maven是apache的顶级项目,在http://maven.apache.org/可以直接下载. 2:环境变量 下载完要配置环境变量,把bi ...