十五、C# 使用查询表达式的LINQ
string[] KeyWords = { "", "c*d", "xxm","2*","ab" };
IEnumerable<string> selection = from word in KeyWords
where !word.Contains('*')
select word;
foreach (string word in selection)
{
Console.WriteLine(word);
}
IEnumerable<FileInfo> files = from fileName in Directory.GetFiles("D:\\")
select new FileInfo(fileName);
foreach (FileInfo file in files)
{
Console.WriteLine("{0}({1})", file.Name, file.LastWriteTime);
}
var files = from fileName in Directory.GetFiles("D:\\")
select new
{
Name = fileName,
LastWriteTime = new FileInfo(fileName).LastAccessTime
};
foreach (var file in files)
{
Console.WriteLine("{0}({1})", file.Name, file.LastWriteTime);
}
var files = from fileName in Directory.GetFiles("D:\\")
where File.GetLastWriteTime(fileName).Year<
select new
{
Name = fileName,
LastWriteTime = new FileInfo(fileName).LastAccessTime
};
foreach (var file in files)
{
Console.WriteLine("{0}({1})", file.Name, file.LastWriteTime);
}
var files = from fileName in Directory.GetFiles("D:\\")
where File.GetLastWriteTime(fileName).Year<
orderby (new FileInfo(fileName)).Length descending,fileName
select new
{
Name = fileName,
LastWriteTime = new FileInfo(fileName).LastAccessTime
};
foreach (var file in files)
{
Console.WriteLine("{0}({1})", file.Name, file.LastWriteTime);
}
var files = from fileName in Directory.GetFiles("D:\\")
where File.GetLastWriteTime(fileName).Year <
let file = new FileInfo(fileName)
orderby file.Length descending, fileName
select new
{
Name = fileName,
LastWriteTime = file.LastAccessTime
};
string[] KeyWords = { "", "c*d", "xxm", "2*", "ab" };
IEnumerable<IGrouping<bool, string>> selection =
from word in KeyWords
group word by word.Contains('*');
//分成了两组,每一组都是一个 IGrouping<bool, string> 类型
foreach (IGrouping<bool, string> wordGroup in selection)
{
Console.WriteLine(Environment.NewLine + "{0}", wordGroup.Key ? "关键字" : "非关键字");
foreach (string word in wordGroup)
{
Console.WriteLine(word);
}
}
string[] KeyWords = { "", "c*d", "xxm", "2*", "ab" };
IEnumerable<IGrouping<bool, string>> keywordGroups =
from word in KeyWords
group word by word.Contains('*');
var selection = from groups in keywordGroups
select new
{
IsContextualKeyword = groups.Key,
Items = groups
};
//分成了两组,每一组都是一个
//{
// IsContextualKeyword = groups.Key,
// Items = groups
//};类型
foreach (var wordGroup in selection)
{
Console.WriteLine(Environment.NewLine + "{0}", wordGroup.IsContextualKeyword ? "关键字" : "非关键字");
foreach (string word in wordGroup.Items)
{
Console.WriteLine(word);
}
}
string[] KeyWords = { "", "c*d", "xxm", "2*", "ab" };
var selection =
from word in KeyWords
group word by word.Contains('*')
into groups//范围变量,代表group by子句返回的每个数据项
select new
{
IsContextualKeyword = groups.Key,
Items = groups
};
//分成了两组,每一组都是一个
//{
// IsContextualKeyword = groups.Key,
// Items = groups
//};类型
foreach (var wordGroup in selection)
{
Console.WriteLine(Environment.NewLine + "{0}", wordGroup.IsContextualKeyword ? "关键字" : "非关键字");
foreach (string word in wordGroup.Items)
{
Console.WriteLine(word);
}
}
var selection = (
from word in KeyWords
select word
).Distinct();
十五、C# 使用查询表达式的LINQ的更多相关文章
- C#复习笔记(4)--C#3:革新写代码的方式(查询表达式和LINQ to object(下))
查询表达式和LINQ to object(下) 接下来我们要研究的大部分都会涉及到透明标识符 let子句和透明标识符 let子句不过是引入了一个新的范围变量.他的值是基于其他范围变量的.let 标识符 ...
- 《C#本质论》读书笔记(15)使用查询表达式的LINQ
15.1 查询表达式的概念 简单的查询表达式 private static void ShowContextualKeywords1() { IEnumerable<string> sel ...
- C#学习笔记五: C#3.0Lambda表达式及Linq解析
最早使用到Lambda表达式是因为一个需求:如果一个数组是:int[] s = new int[]{1,3,5,9,14,16,22};例如只想要这个数组中小于15的元素然后重新组装成一个数组或者直接 ...
- 查询表达式和LINQ to Objects
查询表达式实际上是由编译器“预处理”为“普通”的C#代码,接着以完全普通的方式进行编译.这种巧妙的发式将查询集合到了语言中,而无须把语义改得乱七八糟 LINQ的介绍 LINQ中的基础概念 降低两种数据 ...
- NHibernate系列文章二十五:NHibernate查询之Query Over查询(附程序下载)
摘要 这一篇文章介绍在NHibernate 3.2里引入的Query Over查询,Query Over查询跟Criteria查询类似.首先创建IQueryOver对象,然后通过调用该对象的API函数 ...
- 第十五节:Expression表达式目录树(与委托的区别、自行拼接、总结几类实例间的拷贝)
一. 基本介绍 回忆: 最早接触到表达式目录树(Expression)可能要追溯到几年前使用EF早期的时候,发现where方法里的参数是Expression<Func<T,bool> ...
- PowerBI开发 第十五篇:DAX 表达式(时间+过滤+关系)
DAX表达式中包含时间关系(Time Intelligence)相关的函数,用于对日期维度进行累加.同比和环比等分析.PowerBI能够创建关系,通过过滤器来对影响计算的上下文. 一,时间关系 DAX ...
- 2.1 LINQ的查询表达式
在进行LINQ查询的编写之前,首先需要了解查询表达式.查询表达式是LINQ查询的基础,也是最常用的编写LINQ查询的方法. 查询表达式由查询关键字和对应的操作数组成的表达式整体.其中,查询关键字是常用 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
随机推荐
- 关于谷歌android 4.3 ble问题
随着BLE的逐渐壮大,越来越多的厂商开始支持BLE,在未来的一年里应该会慢慢普及,谷歌android4.3已经支持了自己的nexus4和uexus7 2013手机了,也就是说如果厂商采用谷歌已经实现d ...
- 直接拿来用!最火的android开源项目(一)
不好意思尊重一下作者咯.详情见:csdn:http://www.csdn.net/article/2013-05-03/2815127-Android-open-source-projects
- 字符串(后缀自动机):Ahoi2013 差异
Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output 54 HINT 2<=N< ...
- web.xml中的contextConfigLocation的作用
在web.xml中通过contextConfigLocation配置spring,contextConfigLocation 参数定义了要装入的 Spring 配置文件. 如果想装入多个配置文件,可以 ...
- 机器安装第二个tomcat ,出现报错如何解决
1.本机安装第二个 tomcat 后,出现 报错如下图所示 最后解决办法 是 在安装的时候 ,windows 服务名称 和 另一个tomcat 起不一样的 名称就可以了 如下图
- Unity3d fur真实毛发渲染
放出效果图 使用的核心技术为曲面细分和置换贴图,Unity支持GPU的曲面细分,置换贴图为噪波,沿着法线拉伸即成为毛发.再随机减少最高点的高度产生毛刺的感觉 曲面细分之前有篇文章详细讲过 弄了前后ri ...
- java基础学习(一)
去年10月份从学校出来实习,从事javaWeb方面的开发.到现在已经快1年了.突然间感觉自己的java基础知识忘记的很厉害,或者说知识掌握的不牢吧.回顾自己学习java,发现我竟然一本关于java基础 ...
- chrome如何添加扩展程序xss encode
1.把相应格式(*.crx)的扩展程序直接拖入下面的界面即可(拖入浏览器的其他界面不行)
- [转]Android UI:看看Google官方自定义带旋转动画的ImageView-----RotateImageView怎么写(附 图片淡入淡出效果)
http://blog.csdn.net/yanzi1225627/article/details/22439119 众所周知,想要让ImageView旋转的话,可以用setRotation()让其围 ...
- MySQL字符串函数
字符串大写和小写转换 MySQL 字符串大写和小写转化函数有两对: lower(), uppper() 和 lcase(), ucase() mysql> select lower('DDD') ...