LInq之Take Skip TakeWhile SkipWhile Reverse Union Concat 用法
废话不多说,直接上代码,代码有注释!自行运行测试!
class Program
{
static void Main(string[] args)
{
string[] names = { "郭靖", "李莫愁", "欧阳晓晓", "黄蓉", "黄药师", "郭靖", "黄蓉" }; //Take()方法:用于从一个序列的开头返回指定数量的元素。
Console.WriteLine("Take方法直接输出前3个元素");
foreach (var name in names.Take())
{
Console.WriteLine(name);
}
var query = from n in names
where n.Length ==
select n;
Console.WriteLine("Take方法输出查询结果的前1个元素");
foreach (var s in query.Take())
{
Console.WriteLine(s);
}
Console.WriteLine("\n\n\n");
///////////////////////////////////////////////////////////////////////
//Skip()方法:用于跳过序列中指定个数的元素。
//////////////////////////////////////////////////////////////////////
Console.WriteLine("Skip方法跳过前3个元素");
foreach (var name in names.Skip())
{
Console.WriteLine(name);
}
Console.WriteLine("Skip方法跳过查询结果的前1个元素");
foreach (var s in query.Skip())
{
Console.WriteLine(s);
}
Console.WriteLine("\n\n\n");
///////////////////////////////////////////////////////////////////////
//TakeWhile()方法:用于取序列中从开头起符合条件的元素,直到遇到不符合条件的元素为止的所有元素。注意:当条件为假时,就停止了,后面的元素不会输出。
//////////////////////////////////////////////////////////////////////
Console.WriteLine("TakeWhile用法1如下");
foreach (var name in names.TakeWhile(A=>A.Length==))
{
Console.WriteLine(name);
}
Console.WriteLine("TakeWhile用法2如下");
//注意:当条件为假时,就停止了,后面的元素不会输出。
foreach (var name in names.TakeWhile((item, index) => item.Length < && index < ))
{
Console.WriteLine(name);
}
Console.WriteLine("\n\n\n");
///////////////////////////////////////////////////////////////////////
//SkipWhile()方法:用于只要满足指定的条件,就跳过序列中得元素。注意:当遇到条件为假时,就停止跳越了,输出剩余的所有元素。
//////////////////////////////////////////////////////////////////////
Console.WriteLine("SkipWhile用法1如下");
foreach (var name in names.SkipWhile(n => n.Length == ))
{
Console.WriteLine(name);
}
Console.WriteLine("SkipWhile用法2如下");
//SkipWhile跳过名字小于4个字,并且索引小于2
foreach (var s in names.SkipWhile((item, index) => item.Length < && index < ))
{
Console.WriteLine(s);
}
Console.WriteLine("\n\n\n");
///////////////////////////////////////////////////////////////////////
//Reverse()方法:用于反转
//////////////////////////////////////////////////////////////////////
Console.WriteLine("Reverse用法1如下");
foreach (var name in names.Reverse())
{
Console.WriteLine(name);
}
Console.WriteLine("\n\n\n");
///////////////////////////////////////////////////////////////////////
//Distinct()方法:用于去掉重复元素
//////////////////////////////////////////////////////////////////////
Console.WriteLine("Distinct用法1如下");
foreach (var name in names.Distinct())
{
Console.WriteLine(name);
}
Console.WriteLine("\n\n\n");
///////////////////////////////////////////////////////////////////////
//Union()方法:用于合并两个序列,并去掉重复元素。
//////////////////////////////////////////////////////////////////////
Console.WriteLine("Union用法1如下");
string[] names2 = { "郭靖", "黄蓉","神雕","小龙女" };
foreach (var name in names.Union(names2))
{
Console.WriteLine(name + " ");
}
Console.WriteLine("\n\n\n");
///////////////////////////////////////////////////////////////////////
//Concat()方法:用于合并两个序列,但不会去掉重复元素。
//////////////////////////////////////////////////////////////////////
Console.WriteLine("Concat用法1如下");
foreach (var name in names.Concat(names2))
{
Console.WriteLine(name + " ");
}
Console.ReadKey();
} }
@陈卧龙的博客
LInq之Take Skip TakeWhile SkipWhile Reverse Union Concat 用法的更多相关文章
- LINQ中的陷阱--TakeWhile&SkipWhile
在用TakeWhile,SkipWhile设置陷阱之前,我们先来看一看他们的兄弟Take和Skip: public static IEnumerable<T> Take<T>( ...
- 一次mysql数据关于union+concat用法的记录
SELECT CONCAT('SELECT COUNT(*) FROM ',table_name,' union all') FROM information_schema.tables WHERE ...
- Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析
Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析 二:linq的分区操作 常用的分区操作:Take,TakeWhile,Skip,SkipWhile 三:Take ...
- Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法:在写LINQ语句的时候,往往会看到AsEnumerable() ,AsQueryable() 和T ...
- MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
MVC+Spring.NET+NHibernate .NET SSH框架整合 在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...
- union的用法
union的用法 union用来连接两个查询语句,把两个查询语句的查询结果合并起来,两个查询语句的查询字段个数必须一样,否则会出错,查询的字段可以不一样,类型也可以不一样,但是这样查询的意义不大,如果 ...
- C#Linq中的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods,skip,take,takewhile,skipwhile,编译查询等
我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作 . Union Al ...
- [转]C#Linq中的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods,skip,take,takewhile,skipwhile,编译查询等
本文转自:http://www.cnblogs.com/suizhikuo/p/3791799.html 我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Inte ...
- LINQ 中常用函数使用: Take TakeWhile Skip SkipWhile Reverse Distinct
1,Take 方法 Take方法用于从一个序列的开头返回指定数量的元素. string[] names = { "郭靖", "李莫愁", "欧阳晓晓& ...
随机推荐
- Clumsy 利用无线网卡结合Clumsy软件模拟弱网络测试
利用无线网卡结合Clumsy软件模拟弱网络测试 by:授客 QQ:1033553122 实践环境 Clumsy 0.2 下载地址:http://jagt.github.io/clumsy/downlo ...
- Oracle 启动实例(instance)、打开数据库
Oracle启动实例(instance).打开数据库 by:授客 QQ:1033553122 启动实例(instance).打开数据库 1.开启sqlplus [laiyu@localhost ~ ...
- ios开发GCD(2)-dispatch_semaphore_t信号量计数器
思考:现在有多个线程异步执行,我们想要同时最多只能执行2个或n个,该怎么办? dispatch_semaphore_t 看代码解析: NSLog(@"开始"); dispatch_ ...
- NoHttp封装--03 cookie
NoHttp请求自动维持Cookie: 1.支持Session.Cookie.临时Cookie的位置. 2.支持App重启.关机开机后继续持久化维持. 3.提供了接口,允许开发者监听Coo ...
- WebStorm连接Github教程
上学期刚开学的时候看过一次git相关的内容,很久没用过,忘了,两个月前又看了一次还精心做了笔记,也没有具体使用,又忘了,所以,避免又双叒叕忘了,我决定正式把git用起来.刚开始是通过Git Bash来 ...
- [20171107]dbms_shared_pool.pin补充.txt
[20171107]dbms_shared_pool.pin补充.txt --//上午的测试,做一些补充,主要还是一些理解问题. 1.环境:SCOTT@book> @ &r/ver1 P ...
- python第二十天
logging模块 re正则表达式
- InnoDB中锁的模式,锁的查看,算法
InnoDB中锁的模式 Ⅰ.总览 S行级共享锁lock in share mode X行级排它锁增删改 IS意向共享锁 IX意向排他锁 AI自增锁 Ⅱ.锁之间的兼容性 兼 X IX S IS X ...
- IDEA 如何查看一个类里面的所有方法
快捷键:Alt+7
- Matplotlib:plt.text()给图形添加数据标签
1.数据可视化呈现的最基础图形就是:柱状图.水平条形图.折线图等等: 在python的matplotlib库中分别可用bar.barh.plot函数来构建它们,再使用xticks与yticks(设置坐 ...