C#的LINQ to Object
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的更多相关文章
- .NET面试题系列[13] - LINQ to Object
.NET面试题系列目录 名言警句 "C# 3.0所有特性的提出都是更好地为LINQ服务的" - Learning Hard LINQ是Language Integrated Que ...
- LINQ系列:Linq to Object投影操作符
投影是指在将序列中的元素转换为一个自定义形式的操作.投影操作符Select和SelectMany用于选择出赋予了适当功能的值.SelectMany操作符可以处理多个集合. LINQ表达式语法: 1. ...
- LINQ系列:Linq to Object生成操作符
生成操作符从现有序列值中创建新的序列. 1. Empty Empty操作符返回一个指定类型的空集. 1>. 原型定义 public static IEnumerable<TResult& ...
- LINQ系列:Linq to Object转换操作符
转换是指将输入对象的类型转变为序列的动作. 1. AsEnumerable AsEnumerable操作符将查询的输入以IEnumberable(T)类型返回. 2. Cast Cast操作符将IEn ...
- LINQ系列:Linq to Object量词操作符
量词操作符返回一个Boolean值,指示序列中是否存在部分或全部元素符号指定条件.LINQ中量词操作符包括:All.Any和Contains. 1. All All操作符判定在集合中是否所有的值都满足 ...
- LinQ To Object 基本用法
http://www.cnblogs.com/terryzh/archive/2012/11/10/2763538.html LinQ To Object 基本用法 inq的基本语法:var resu ...
- SQO (标准查询运算符)方法 & Linq To Object
#region SQO (标准查询运算符) 方法 #region Where() Find() FindAll() FirstOrDefault()等方法 static void c01where() ...
- 1.解剖Linq to object
LINQ想必大家都不陌生了,它的出现使得我们的代码变得更短.更优雅了.至于LINQ是什么,Linq to object这类的扩展方法到底做了些什么.我们使用的EF是如何实现的(如何解析Expressi ...
- Linq to EF 与Linq to Object 使用心得
大家都知道Linq既可以用来查询数据库对象(我这里指的是Entity FrameWork里的Model对象),也可以用来查询内存中的IEnumerable对象. 两者单独查询时都不会出现什么问题,不过 ...
- Linq to OBJECT延时标准查询操作符
1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select 操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...
随机推荐
- JAVA正则表达式:Pattern类与Matcher类详解
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- Open CV缩放图像
缩放图像是图像处理中需要经常使用的操作.太小的图像在图像识别中不能很好的处理,需要将其放大,太大的图像不方便储存,需要将其缩小,下面记录OpenCV图片缩放方法. 缩放函数 , , int inter ...
- I2C总线协议的简要说明
为了快速的了解I2C总线协议,此处采用另类的方式进行说明. 倘若你和另外一个人只能通过一个开关加灯泡的装置在不同的两个房间进行交流,以下是很简单能说明的一个模型: 你的房间有一个开关,另外一间房间有一 ...
- Linux ffmpeg命令的介绍与使用
ffmpeg使用语法 ffmpeg [[options][`-i' input_file]]... {[options] output_file}... 如果没有输入文件,那么视音频捕捉(只在Linu ...
- 试用vSphere 6(三):安装vCenter 6(独立数据库)之:vCenter安装与配置
------------------------------------------ 一.VMware vSphere 6(RC版)安装配置系列文章: 1.试用vSphere 6(一):安装ESXi ...
- NET-SNMP开发——日志输出
NET-SNMP开发——日志输出 net-snmp的日志输出功能是很强大的,与日志输出相关函数声明在net-snmp-5.7.3\include\net-snmp\library\snmp_loggi ...
- 32 GroupSock(AddressPortLookupTable)——live555源码阅读(四)网络
32 GroupSock(AddressPortLookupTable)——live555源码阅读(四)网络 32 GroupSock(AddressPortLookupTable)——live555 ...
- Python自动化之线程进阶篇
拓展知识 什么是CPU-bound(计算密集型) 和I/O bound(I/O密集型) ? I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CP ...
- 开始做POI啦...
库 为了效率搞了这么一个库: 现在版本号1.14(一月十四日更新版本囧..) http://pan.baidu.com/s/1c0SoGfu [source] http://pan.baidu.com ...
- OC block的简单使用
http://blog.csdn.net/itpeng523/article/details/23965147 一.先用Xcode创建一个空工程 学习block之前先用弄懂c语言的函数指针 看代码: ...