特别喜欢同事看到我写了一句小排序的时候说,他当然喜欢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. 认识Junit

    JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUnit有它自己的JUn ...

  2. Android应用程序与SurfaceFlinger服务之间的共享UI元数据(SharedClient)的创建过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7867340 在前面一篇文章中,我们分析了And ...

  3. crm使用soap更改下拉框的文本值

    //C#代码 //UpdateStateValueRequest updateStateValue = new UpdateStateValueRequest //{ //    AttributeL ...

  4. 理解java设计模式之观察者模式

    在生活实际中,我们经常会遇到关注一个事物数据变化的情况,例如生活中的温度记录仪,当温度变化时,我们观察它温度变化的曲线,温度记录日志等.对于这一类问题,很接近java设计模式里面的“观察者模式”,它适 ...

  5. IE 中创建 子窗口 传值 与接收值 【window.showModalDialog】

    父窗口 创建一个窗口 var backinfo = window.showModalDialog('UserSelect.aspx', '', 'dialogHeight=600px; dialogW ...

  6. URL 对特殊字符的处理

    看到很多人说可以通过转移字符来进行转义,避免URL在请求的时候出错. 现在有了更好的方法了.不然还不得把半个ASCII码表给进行转义了! import java.io.UnsupportedEncod ...

  7. view import symbols

    nm -D [file]|grep -w U or objdump -T [file]|grep "*UND*"

  8. silverlight中鼠标放在对象的提示事件

    1.xaml 中实现 <Rectangle x:Name="toolTip" Grid.Column="0" Grid.Row="1" ...

  9. Java通过axis调用.NET WebService

    前面已经记录过通过axis调用webservice,昨天在对接.NET接口时,发现在传递参数时和一般的传参方法是不一样的,在接口方哥们的帮助下解决了.哈哈. import java.net.URL; ...

  10. weblogic配置jdbc数据源

    weblogic配置jdbc数据源的过程 方法/步骤   启动weblogic 管理服务器,使用管理用户登录weblogic管理控制台   打开管理控制台后,在左侧的树形域结构中,选择服务->数 ...