linQ学习笔记之二简单的linq使用
最基本的Lambda表达式
(参数列表)=>{f方法体}
参数列表中的参数类型可以是明确类型或者是推断类型
如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出来
linQ to Obejct的操作
一些简单的查询
下面所使用的Print方法在list中是没有,是自己写的拓展方法,代码在最下面
private void button5_Click(object sender, EventArgs e)
{
//LinQ to Object
//泛型集合
List<string> li = new List<string>() { "张三","李四","王五","赵六","钱七"};
//输出所有元素
// var list2 = li.Select(sd => sd);
//list2.Print();
//输出里面姓张的
//var list1 = li.Select(sd => sd).Where(sd => sd.StartsWith("张"));
// var list1 = li.Where(s => s.StartsWith("张"));
//var list3 = li.Where(s => Judge(s));
//list3.Print();
//进行排序 默认按照字母排序
//var list4 = li.OrderBy(s => s);
//按照最后一个字母排序
var list5 = li.OrderBy(s => s.Substring(s.Length - 1, 1)).Select(s => s);
list5.Print();
}
//进行复杂操作
public bool Judge(string s)
{
if (s.StartsWith("张"))
{
return true;
}
else
{
return false;
}
}
这个拓展方法并不是必要的,只是为了方便展示效果
/// <summary>
/// 创建一个静态的类,拓展类
/// </summary>
public static class ExtraClass
{
/// <summary>
/// 拓展方法 必须是静态的
/// </summary>
/// <param name="s">对哪一个属性进行的拓展</param>
/// <returns></returns> //为IEnumerable提供输出方法
public static void Print(this IEnumerable ie)
{
IEnumerator IEU = ie.GetEnumerator();
while (IEU.MoveNext())
{
Console.WriteLine(IEU.Current);
}
}
linQ学习笔记之二简单的linq使用的更多相关文章
- LINQ学习笔记(二)
上一篇是根据百度百科写的随便,同时也纠正我对LINQ的看法,因为首次接触LINQ是使用EF对数据库数据的操作. 所以误以为它操作数据库的一种新手段. LINQ语言集成查询是一组技术的名称,这些技术建立 ...
- C#可扩展编程之MEF学习笔记(二):MEF的导出(Export)和导入(Import)
上一篇学习完了MEF的基础知识,编写了一个简单的DEMO,接下来接着上篇的内容继续学习,如果没有看过上一篇的内容, 请阅读:http://www.cnblogs.com/yunfeifei/p/392 ...
- DuiLib学习笔记(二) 扩展CScrollbar属性
DuiLib学习笔记(二) 扩展CScrollbar属性 Duilib的滚动条滑块默认最小值为滚动条的高度(HScrollbar)或者宽度(VScrollbar).并且这个值默认为16.当采用系统样式 ...
- guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用
guava 学习笔记(二) 瓜娃(guava)的API快速熟悉使用 1,大纲 让我们来熟悉瓜娃,并体验下它的一些API,分成如下几个部分: Introduction Guava Collection ...
- Yii框架学习笔记(二)将html前端模板整合到框架中
选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...
- VSTO学习笔记(二)Excel对象模型
原文:VSTO学习笔记(二)Excel对象模型 上一次主要学习了VSTO的发展历史及其历代版本的新特性,概述了VSTO对开发人员的帮助和效率提升.从这次开始,将从VSTO 4.0开始,逐一探讨VSTO ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Memcached 学习笔记(二)——ruby调用
Memcached 学习笔记(二)——ruby调用 上一节我们讲述了怎样安装memcached及memcached常用命令.这一节我们将通过ruby来调用memcached相关操作. 第一步,安装ru ...
- Deep Q-Network 学习笔记(二)—— Q-Learning与神经网络结合使用(有代码实现)
参考资料: https://morvanzhou.github.io/ 非常感谢莫烦老师的教程 http://mnemstudio.org/path-finding-q-learning-tutori ...
随机推荐
- [LeetCode] Add Two Numbers 两个数字相加
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- 【VS】vs修改大小写快捷键
选中一段英文 改成小写:Ctrl+U 改成大写:Ctrl+Shift+U
- 【Quartz】将定时任务持久化到数据库
之前的文章所做的demo是将定时任务的信息保存在内存中的,见以下配置 org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore 如果,我们需要在 ...
- mysql general log日志
注:应一直出现http://www.cnblogs.com/hwaggLee/p/6030765.html文章中的问题 故mysql general log日志.查看具体是什么命令导致的. 打开 ge ...
- DedeCMS flink_add Getshell漏洞 管理员CSRF漏洞
DedeCMS flink_add Getshell漏洞 管理员CSRF漏洞 1.漏洞利用 由于tpl.php中的$action,$content,$filename变量没有初始化,从而能操纵这些变量 ...
- SHELL编写NGINX服务控制脚本
使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的 ...
- 通过实现System.IComparable接口的CompareTo方法对两个类进行比较
假设现在有一个学生类 class Student { int age; public Student(int age) { this.age = age; } } 要使学生类之间能进行比较,实现Sys ...
- CSS-垂直|水平居中问题的解决方法总结
题外话:前两天和专业老师探讨最近的一个项目,涉及到对一个浮动的盒子局中的问题,老师的解决方法打开了我的新思路.让我有了总结一下平时的居中问题的想法.不然可能忘掉了以后又要到处寻找解决办法了.另外也给我 ...
- python模块(shelve,xml,configparser,hashlib,logging)
1.1shelve模块 shelve 模块比pickle模块简单,只有一个open函数,返回类似字典对象,可读可写:key必须为字符串, 而值可以是python所支持的数据类型. shelve模块主要 ...
- Table 固定表头的几种方法
<style type="text/css"> /*所有内容都在这个DIV内*/ div.all { border: 3px solid #FF00FF; width: ...