常用Linq示例代码
class Program
{
static void Main(string[] args)
{
//1. Aggregate
int[] testArr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//refer:http://www.cnblogs.com/ldp615/archive/2009/08/12/1544688.html
// x is aggregate result
var result = Enumerable.Aggregate(testArr, (x, y) => { return x + y; });
var result2 = Enumerable.Aggregate(testArr, calculateSum);
string[] testStringArr = new string[] { "i", "am", "chinese" };
var resultString = testStringArr.Aggregate((x, y) => { return x + " " + y; });
//2. All
var allOK = testArr.All(o => o % 2 == 0);
var allOK2 = testArr.All(o => o < 10);
//3.Cast
var testArr2 = Enumerable.Repeat(new CD() { Title = "a" }, 10);
var ret = testArr2.Cast<ABC>().First();
//4.group by
var groupArr = testArr.GroupBy(o => o % 2 == 0);
var allKeys = groupArr.Select(o => o.Key);
var allKeysWithValues = groupArr.SelectMany(o => o.Select(x => x + " " + o.Key)).ToList();
//5.Intersect
int[] testArr3 = new int[] { 1, 2, 3, 9, 11, 12 };
var intersectResult = testArr.Intersect(testArr3).ToList();
//6.MAX,
var retMAX = testStringArr.Max(o => compareMAX(o));
//7.single
//refer: http://blog.163.com/li_crane/blog/static/1950209720110853413858/
//Single():操作一个集合,同时强要求只有一个对象匹配,并返回这一个。
//First():操作一个集合,可以有多个对象匹配,但是只返回第一个。
//Take(1):操作一个集合,可以有对个对象匹配,单只返回第一个,但是这里返回的是一个集合,而不是单个的概念。
//8.Orderby ThenBy
int i = 0;
List<CD> allCDs = new List<CD>();
while (i < 10)
{
allCDs.Add(new CD() { Title = i + "i", SubTitle = DateTime.Now.ToString(), TypeID = i % 3 });
i++;
}
var newList = allCDs.OrderBy(o => o.SubTitle).ThenBy(o => o.Title);
//9.ToDictionary
var retDictionary = allCDs.ToDictionary(x => x.Title, y => y);
//10.ToLookup
//refer:http://blog.sina.com.cn/s/blog_5fc933730100xd3d.html
var retLookup = allCDs.ToLookup(x => x.TypeID);
var secondElement = retLookup[2];
//1.Zip
//refer:http://www.cnblogs.com/lifepoem/archive/2011/11/29/2267243.html
IEnumerable<string> zip = testArr.Zip(allCDs, (n, w) => n + "=" + w.Title + "|" + w.SubTitle);
foreach (var zipstr in zip)
{
Trace.WriteLine(zipstr);
}
}
static int calculateSum(int a, int b)
{
return a + b;
}
static T compareMAX<T>(T parm)
{
return parm;
}
}
class ABC
{
public string Title { get; set; }
}
class CD : ABC
{
public string SubTitle { get; set; }
public int TypeID { get; set; }
}
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
常用Linq示例代码的更多相关文章
- Swift常用语法示例代码(二)
此篇文章整理自我以前学习Swift时的一些练习代码,其存在的意义多是可以通过看示例代码更快地回忆Swift的主要语法. 如果你想系统学习Swift或者是Swift的初学者请绕路,感谢Github上Th ...
- Swift常用语法示例代码(一)
此篇文章整理自我以前学习Swift时的一些练习代码,其存在的意义多是可以通过看示例代码更快地回忆Swift的主要语法. 如果你想系统学习Swift或者是Swift的初学者请绕路,感谢Github上Th ...
- 1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)
1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主 ...
- 常用 Java 静态代码分析工具的分析与比较
常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基 本概念及主要技术,随后分别介绍了现有 4 种主流 Java 静态代码分析工具 (Checkstyle,FindBu ...
- 十五个常用的jquery代码段【转】
好的文章顶一个 回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top 2 $('a.t ...
- 十五个常用的jquery代码段
十五个常用的jquery代码段 回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top ...
- C# WebSocket 服务端示例代码 + HTML5客户端示例代码
WebSocket服务端 C#示例代码 using System; using System.Collections.Generic; using System.Linq; using System. ...
- python开源项目及示例代码
本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...
- C/C++ 开源库及示例代码
C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...
随机推荐
- nginx servername配置域名网站可以正常登录,servername配置IP+Port却无法正常登录
由于业务的原因,需要将网站从通过域名访问变换为通过IP+PORT的访问方式: 以前的配置: server { listen ; server_name wx.xxxx.com; } 以前的登录页面: ...
- 依赖注入(Dependency Injection)
Spring的两个核心内容为控制反转(Ioc)和面向切面(AOP),依赖注入(DI)是控制反转(Ioc)的一种方式. 依赖注入这个词让人望而生畏,现在已经演变成一项复杂的编程技巧 或设计模式理念.但事 ...
- C语言 · 十进制数转八进制数
算法训练 十进制数转八进制数 时间限制:1.0s 内存限制:512.0MB 编写函数把一个十进制数输出其对应的八进制数. 样例输入 9274 样例输出 22072 #includ ...
- Linxu安装Tomcat与Jdk并卸载自带OpenJdk
下载安装tomcat 1.下载apache-tomcat-7.0.47.tar.gz tomcat压缩包上传到linxu服务器 2.cd到文件存放目录使用(tar -xvzf apache-tomca ...
- 工具软件 PYUV打开raw图片
引自:http://blog.csdn.net/lavenderss/article/details/51495648 [pYUV]如何打开YUV/RGB图片 pYUV工具本身使用起来比较简单,但如果 ...
- win10里如何在中文输入法里添加美国键盘
在控制面板打开“时钟.语言和区域”设置界面,选中“语言”设置 “语言”设置里点击“添加语言” 在添加语言设置里选择“英语”,并点击“打开”按钮,在“区域变量”设置页面里选择“英语(美国)” , ...
- iframe中跨域页面访问parent的方法
背景 如上图所示,系统www.a.com/index.html页面中嵌入一个iframe,iframe中访问不同域的www.b.com/index.html 然后b中有个按钮“保存”,想调用父页面a. ...
- Ext 组件的一些操作
原文:http://linder0209.iteye.com/blog/1039200 1.Ext.Component 该组件在渲染的时候会默认的创建div DOM,是根据this.autoEl的配置 ...
- JAVASCRIPT 之escape 介绍
escape() 方法:采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字 符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编 ...
- Chrome 各版本下载集合
Windows平台: Chrome 在线安装包: 最新稳定版(Stable Channel)Chrome在线安装: [点击这里] 最新测试版(Beta Channel)Chrome在线安装: [点击这 ...