特别喜欢同事看到我写了一句小排序的时候说,他当然喜欢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. UVa 1394: And Then There Was One

    设置一个数组Winner记录经典约瑟夫问题中的剩余者即可递归解决该问题. 注: 约瑟夫问题:有编号为0~n-1的n个人,从0号开始报数1,2,3......报到k的杀死,然后从下一个人开始继续报数1, ...

  2. C++ Primer 学习笔记_69_面向对象编程 --继承情况下的类作用域

    面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:假设不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这样的类作用域的层次嵌套使 ...

  3. Head First C#(赛狗日)

    实验背景: 人:Joe.Bob和AI希望参见赛狗赌博.最初,Joe有50元,Bob有75元,AI有45元.每次比赛前,他们都会各自决定是否下注以及所押的赌金.直到比赛前,他们都可以改变赌金,但是一旦比 ...

  4. C#关于ref的用法(多个实参值的传递)

    按照C#默认的按值调用参数的传递机制,不能刻编写出一个方法来实现两个int类型的值交换,因为一个方法只能对应一个返回值,如何实现将两个交换的值传递回去,这里我将用到的是ref修饰符. 使用ref的单值 ...

  5. Angular之filter学习

    过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果.主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等.ng内置了一些过滤器,它们 ...

  6. 一.Linq to JSON是用来干什么的?

    Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和 ...

  7. OC——动态添加Button和监听UIAlertView按钮

    1:动态添加uibutton - (IBAction)addButton:(id)sender { CGRect frame = CGRectMake(90, 200, 200, 60); UIBut ...

  8. Sql server中根据object的定义查找object

    SELECT OBJECT_NAME(object_id) FROM sys.sql_modulesWHERE definition LIKE '%keyword to search%' 或者 SEL ...

  9. HDU 1056 - HangOver

    递推 #include <iostream> using namespace std; ]; double c; int main() { f[]=; ;i<=;i++) f[i]= ...

  10. 给小班讲stl 之 map、sort、优先队列

    引子:最近老师让给小班讲课,讲stl,,但是我觉得就小班现在这水平根本讲不懂好不好,,,,