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 = { "郭靖", "李莫愁", "欧阳晓晓& ...
随机推荐
- id、name、setter方法注入、构造方法注入、工厂方法注入、注解注入、方法注入、方法替换、Web作用域、普通bean引用Web作用域的bean
spring IoC的id和name id的命名需要满足XML对id的命名规范,必须以字母开始,后面可以是字母.数字.连字符.下画线.句号.冒号等等号,但逗号和空格是非法的.如果用户确实希望用一些特殊 ...
- [20171113]修改表结构删除列相关问题2.txt
[20171113]修改表结构删除列相关问题2.txt --//测试看看修改表结构删除列产生的redo向量,对这些操作细节不了解,分析redo看看. 1.环境:SCOTT@book> @ &am ...
- Linux 设备树的解释 - DTB文件格式【转】
https://blog.csdn.net/cc289123557/article/details/51782449 1.dtb文件格式 dtb文件的格式如下图 : NOTE:不同部分顺序可能不一样 ...
- sftp 建立用户
1.创建sftp组:#groupadd sftp 2.创建测试账户:#useradd -g sftp -s /bin/false testuser 修改密码:# passwd sftp 3.修改测试账 ...
- gitlab 和 github 配置 SSH Keys
gitlab 文档上给了很好的配置的例子:https://gitlab.com/help/ssh/README#locating-an-existing-ssh-key-pair 针对mac 下的使用 ...
- inode 耗尽
背景: 之前为了提升大硬盘mkfs文件系统的速度,使用了大文件选项 mkfs.ext4 -T largefile /dev/xvde1 没有仔细算能存多少文件,结果今天发现磁盘没用完,但inode用完 ...
- dell t130服务器安装windowsserver2008R2系统
dell T130服务器系统是可以安装windowsserver2008R2系统. 总共8个USB端口: 后置USB:2个USB 3.0和4个USB 2.0 前置USB:1个USB 2.0和1个USB ...
- Java-栈的学习(字符串的反转)
StackX类 public class StackX{ private int maxSize; private char StackArray[]; private int top; public ...
- system函数的应用
system函数的两个简单应用 1.调用cmd命令.例:(打开计算器) #include <stdlib.h> int main() { system("calc"); ...
- C#的深拷贝和浅拷贝
也许会有人这样解释C# 中浅拷贝与深拷贝区别: 浅拷贝是对引用类型拷贝地址,对值类型直接进行拷贝. 不能说它完全错误,但至少还不够严谨.比如:string 类型咋说? 其实,我们可以通过实践来寻找答案 ...