using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Linq; namespace codeTest
{
class Program
{
static void Main(string[] args)
{
//linq : Lauage Intergarted Query
//继承IEnumerable的类,都可以使用linq
//Linq to sql,Linq to xml,Linq to DataSet,Linq to objects
//linq语句在具体调用时,才会执行 toList() Count() List<Customer> Customers = new List<Customer>();
Customers.Add(new Customer() { CustomerName = "Li1", CityID = });
Customers.Add(new Customer() { CustomerName = "Li2", CityID = });
Customers.Add(new Customer() { CustomerName = "Li3", CityID = });
Customers.Add(new Customer() { CustomerName = "Li4", CityID = }); List<City> Citys = new List<City>();
Citys.Add(new City() { CityID = , CityName = "北京" });
Citys.Add(new City() { CityID = , CityName = "上海" });
Citys.Add(new City() { CityID = , CityName = "广州" });
Citys.Add(new City() { CityID = , CityName = "深圳" }); #region 简单查询
//1.Query systax
var query = from c in Customers
where c.CityID % ==
orderby c.CityID descending
select c; foreach (var item in query)
{
Console.WriteLine("{0},{1}", item.CustomerName, item.CityID);
} Console.WriteLine(); //2.Method systax
var query2 = Customers.Where(c => c.CityID % == ).OrderByDescending(c => c.CityID);
foreach (var item in query2)
{
Console.WriteLine("{0},{1}", item.CustomerName, item.CityID);
}
#endregion #region Group
Console.WriteLine("queryGroup");
//1.Query systax
var queryGroup = from c in Customers
group c by c.CityID; foreach (var group in queryGroup)
{
Console.WriteLine("{0}", group.Key);
foreach (var item in group)
{
Console.WriteLine("{0},{1}", item.CustomerName, item.CityID);
}
} Console.WriteLine(); //2.Method systax
var queryGroup2 = Customers.GroupBy(c => c.CityID);
foreach (var group in queryGroup2)
{
Console.WriteLine("{0}", group.Key);
foreach (var item in group)
{
Console.WriteLine("{0},{1}", item.CustomerName, item.CityID);
}
}
#endregion #region into
Console.WriteLine("into");
//1.Query systax
var queryGroupinto = from c in Customers
group c by c.CityID into cGroup
where cGroup.Count() >
select new { CityID = cGroup.Key, Cout = cGroup.Count() }; foreach (var group in queryGroupinto)
{
Console.WriteLine("{0},{1}", group.CityID,group.Cout);
} Console.WriteLine(); //2.Method systax
var queryGroupinto2 = Customers.GroupBy(c => c.CityID).
Where(cGroup => cGroup.Count() > ).
Select(cGroup => new { CityID = cGroup.Key, Cout = cGroup.Count() });
foreach (var group in queryGroupinto2)
{
Console.WriteLine("{0},{1}", group.CityID, group.Cout);
}
#endregion #region join
Console.WriteLine("join");
//1.Query systax
var queryJoin = from c in Customers
join ci in Citys on c.CityID equals ci.CityID
select new { CustomerName = c.CustomerName, c.CityID, ci.CityName };
foreach (var item in queryJoin)
{
Console.WriteLine("{0},{1},{2}", item.CustomerName, item.CityID,item.CityName);
}
Console.WriteLine();
//2.Method systax
var queryJoin2 = Customers.Join(Citys,
c => c.CityID,
ci => ci.CityID,
(c, ci) => new { CustomerName = c.CustomerName, c.CityID, ci.CityName }); foreach (var item in queryJoin2)
{
Console.WriteLine("{0},{1},{2}", item.CustomerName, item.CityID, item.CityName);
}
#endregion Console.ReadLine();
} class Customer
{
public string CustomerName { get; set; }
public int CityID { get; set; }
} class City
{
public int CityID { get; set; }
public string CityName { get; set; }
}
} }

C#的LINQ to Object的更多相关文章

  1. .NET面试题系列[13] - LINQ to Object

    .NET面试题系列目录 名言警句 "C# 3.0所有特性的提出都是更好地为LINQ服务的" - Learning Hard LINQ是Language Integrated Que ...

  2. LINQ系列:Linq to Object投影操作符

    投影是指在将序列中的元素转换为一个自定义形式的操作.投影操作符Select和SelectMany用于选择出赋予了适当功能的值.SelectMany操作符可以处理多个集合. LINQ表达式语法: 1. ...

  3. LINQ系列:Linq to Object生成操作符

    生成操作符从现有序列值中创建新的序列. 1. Empty  Empty操作符返回一个指定类型的空集. 1>. 原型定义 public static IEnumerable<TResult& ...

  4. LINQ系列:Linq to Object转换操作符

    转换是指将输入对象的类型转变为序列的动作. 1. AsEnumerable AsEnumerable操作符将查询的输入以IEnumberable(T)类型返回. 2. Cast Cast操作符将IEn ...

  5. LINQ系列:Linq to Object量词操作符

    量词操作符返回一个Boolean值,指示序列中是否存在部分或全部元素符号指定条件.LINQ中量词操作符包括:All.Any和Contains. 1. All All操作符判定在集合中是否所有的值都满足 ...

  6. LinQ To Object 基本用法

    http://www.cnblogs.com/terryzh/archive/2012/11/10/2763538.html LinQ To Object 基本用法 inq的基本语法:var resu ...

  7. SQO (标准查询运算符)方法 & Linq To Object

    #region SQO (标准查询运算符) 方法 #region Where() Find() FindAll() FirstOrDefault()等方法 static void c01where() ...

  8. 1.解剖Linq to object

    LINQ想必大家都不陌生了,它的出现使得我们的代码变得更短.更优雅了.至于LINQ是什么,Linq to object这类的扩展方法到底做了些什么.我们使用的EF是如何实现的(如何解析Expressi ...

  9. Linq to EF 与Linq to Object 使用心得

    大家都知道Linq既可以用来查询数据库对象(我这里指的是Entity FrameWork里的Model对象),也可以用来查询内存中的IEnumerable对象. 两者单独查询时都不会出现什么问题,不过 ...

  10. Linq to OBJECT延时标准查询操作符

    1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select  操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...

随机推荐

  1. Java BigDecimal详解

    借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供 较为精确的快速近 ...

  2. hiho #1305 区间求差

    #1305 : 区间求差 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个区间集合 A 和 B,其中集合 A 包含 N 个区间[ A1, A2 ], [ A3,  ...

  3. bug-android之app:mergeDebugResources

    bug描述:Error:Execution failed for task ':app:mergeDebugResources'. > Crunching Cruncher seekbar_th ...

  4. BestCoder Round #61 1002 Game

    Problem Description XY is playing a game:there are N pillar in a row,which numbered from 1 to n.Each ...

  5. php搜索分页

    最近做搜索分页的时候,发现第一页显示正常,点击到下一页的时候,显示结果变成了搜索全部内容. 仔细查看代码,发现当第一次输入关键词,提交到查询控制器的时候,表单提交的关键字不为空,可是点击到下一页的时候 ...

  6. CentOS用yum安装、配置MariaDB

    .创建/etc/yum.repos.d/MariaDB.repo文件,这里用到了刚刚发布正式版的10. [mariadb] name = MariaDB baseurl = http://yum.ma ...

  7. VMware12中CentOS7网络设置

    VMware提供了三种将虚拟网卡和物理网卡捆绑起来的方式,即桥接(Bridge)模式,网络地址转换(Network Address Transformation, NAT)模式和主机(Host Onl ...

  8. Resizing the disk space on Ubuntu Server VMs running on VMware ESXi 5

    from: http://www.joomlaworks.net/blog/item/168-resizing-the-disk-space-on-ubuntu-server-vms-running- ...

  9. easyui datagrid中datetime字段的显示和增删改查问题

    datagrid中datetime字段的异常显示: 使用过easyui datagrid的应该都知道,如果数据库中的字段是datetime类型,绑定在datagrid显式的时候会不正常显示,一般需要借 ...

  10. poj 1182

    http://poj.org/problem?id=1182 一个利用并查集的经典题目. 思路:在网上看到别人的思路,觉得方法还是挺不错的. 首先,开辟一个3*n的数组belg,用来存b和c的关系,在 ...