Ling && Lambda
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Test_Lambda_Linq
{
class Program
{
static List<Person> PersonList = new List<Person>()
{
new Person(){ Id=, Age=, Name="James", Gender="Male"},
new Person(){ Id=, Age=, Name="Harden", Gender="Male" },
new Person(){ Id=, Age=, Name="George", Gender="Female"},
new Person(){ Id=, Age=, Name="Ball", Gender="Female"},
new Person(){ Id=, Age=, Name="Kobe", Gender="Male"},
new Person(){ Id=, Age=, Name="Fames", Gender="Male"},
new Person(){ Id=, Age=, Name="Garden", Gender="Male" },
new Person(){ Id=, Age=, Name="Deorge", Gender="Female"},
new Person(){ Id=, Age=, Name="Hall", Gender="Female"},
new Person(){ Id=, Age=, Name="Dobe", Gender="Male"},
new Person(){ Id=, Age=, Name="Lames", Gender="Male"},
new Person(){ Id=, Age=, Name="Parden", Gender="Male" },
new Person(){ Id=, Age=, Name="Keorge", Gender="Female"},
new Person(){ Id=, Age=, Name="Yall", Gender="Female"},
new Person(){ Id=, Age=, Name="Robe", Gender="Male"}
};
static List<Children> ChildList = new List<Children>()
{
new Children(){ Id=, Name="Tomas", Age=, Class=, Gender="Female"},
new Children(){ Id=, Name="James", Age=, Class=, Gender="Male"},
new Children(){ Id=, Name="Jungle", Age=, Class=, Gender="Male"}
};
static void Main(string[] args)
{
//PersonList.Reverse();//全盘逆序
//PersonList.Reverse(0,4);//指定范围逆序
#region Lambda
#region Sort排序
//ServiceInvoke.Invoke(() =>
//{
// foreach (var p in PersonList)
// {
// Console.WriteLine(p.Name);
// }
//}); //PersonList.Sort((p1, p2) => { return p1.Age - p2.Age; });
//PersonList.Sort((p1, p2) => p1.Age - p2.Age );//排序 //ServiceInvoke.Invoke(() =>
//{
// foreach (var p in PersonList)
// {
// Console.WriteLine(p.Name);
// }
//});
#endregion #region Where筛选高手
//ServiceInvoke.Invoke(() =>
//{
// List<Person> pTemp = PersonList.Where(p => p.Age > 20 && p.Gender == "Male").ToList();
// foreach (var p in pTemp)
// {
// Console.WriteLine(p.Name + " is " + p.Age + " years old ");
// };
// PersonList.ForEach(p => Console.WriteLine(p.Name));
//});
#endregion #region Select投影大牛---查询投影
//ServiceInvoke.Invoke(() =>
//{
// List<Person> pTemp = PersonList.Where(p => p.Gender == "Male").Select(p => (Person)new LitePerson() { Name = p.Name , Age=p.Age}).ToList();
// foreach (var p in pTemp)
// {
// Console.WriteLine(p.Name + " is " + p.Age + " years old ");
// };
// PersonList.ForEach(p => Console.WriteLine(p.Name));
//});
#endregion #region OrderBy排序 第二次用ThenBy排序
//ServiceInvoke.Invoke(() =>
//{
// Console.WriteLine("Initial Order:"); PersonList.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old "));//原来
// List<Person> pTempDefault = PersonList.OrderBy(p => p.Age).ToList(); Console.WriteLine("Default Order:");//默认由小到大---升序
// pTempDefault.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old "));//排序后 // //单条件降序
// List<Person> pTempDescending = PersonList.OrderByDescending(p => p.Age).ToList(); Console.WriteLine("Descending Order:");//降序
// pTempDescending.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old ")); // //多条件综合排序
// List<Person> pTempOrderBy_ThenByDescending = PersonList.OrderBy(p => p.Age).ThenByDescending(p => p.Id).ToList(); Console.WriteLine("OrderBy_ThenByDescending Order:");
// pTempOrderBy_ThenByDescending.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old " + " And his Id is " + p.Id));
//});
#endregion #region Join 多个数据集(>=2)
//ServiceInvoke.Invoke(() =>
//{
// var joinedList = PersonList.Join(ChildList, p => p.Id, c => c.Id, (p, c) =>
// new { //匿名对象
// ParentID = p.Id,
// ChildID = c.Id,
// ParentName = p.Name,
// ChildName = c.Name
// }).ToList();
// joinedList.ForEach(j => Console.WriteLine(" ParentID: " + j.ParentID + " ChildID: " + j.ChildID + " ParentName: " + j.ParentName + " ChildName: " + j.ChildName));
//});
#endregion #region GroupBy
//ServiceInvoke.Invoke(() =>
//{
// IEnumerable<IGrouping<string, Person>> groups = PersonList.GroupBy(p => p.Gender);
// IList<IGrouping<string, Person>> groupList = groups.ToList();
// foreach (var g in groupList)
// {
// //Key是分组依据的类型---Gender
// Console.WriteLine("Group:{0}", g.Key=="Male" ? "Male" : "Female");
// foreach (Person p in g)
// {
// Console.WriteLine(p.Name + " is " + p.Gender);
// }
// }
//});
#endregion #region Skip与Take
//实现分页
//ServiceInvoke.Invoke(()=>
//{
// Console.WriteLine("First Page:");
// var firstPageData = GetPagedListByIndex(1,5);
// firstPageData.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old " + " And his Id is " + p.Id));
// Console.WriteLine("Second Page:");
// var secondPageData = GetPagedListByIndex(2, 5);
// secondPageData.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old " + " And his Id is " + p.Id));
// Console.WriteLine("Third Page:");
// var thirdPageData = GetPagedListByIndex(1, 5);
// thirdPageData.ForEach(p => Console.WriteLine(p.Name + " is " + p.Age + " years old " + " And his Id is " + p.Id));
//});
#endregion
#endregion #region Linq #region 基本查询
//ServiceInvoke.Invoke(()=>
//{
// var maleList = from p in PersonList
// where p.Gender == "Male"
// select p;
// maleList.ToList().ForEach(p => Console.WriteLine(p.Name + " is " + p.Gender));
//});
#endregion #region 排序条件查询
//ServiceInvoke.Invoke(() =>
//{
// var orderList = from p in PersonList
// orderby p.Age descending//先按年龄排序
// orderby p.Name ascending//在上面的基础上按姓名排序
// select p;
// orderList.ToList().ForEach(p => Console.WriteLine(p.Name + " is " + p.Age));
//});
#endregion #region 连接查询
//ServiceInvoke.Invoke(() =>
//{
// var joinedList = from p in PersonList
// join c in ChildList
// on p.Id equals c.Id
// select new
// {
// Person = p,
// Child = c
// };
// joinedList.ToList().ForEach(p => Console.WriteLine(" Person.Name is " + p.Person.Name + " Child.Name is " + p.Child.Name + " And Id is: "+ p.Child.Id));
//});
#endregion #region 分组查询
ServiceInvoke.Invoke(() =>
{
var groupList = from p in PersonList
group p by p.Gender;
foreach (var g in groupList)
{
Console.WriteLine($"Group:{g.Key}");
foreach (var item in g)
{
Console.WriteLine(item.Name + " is "+ item.Gender);
}
}
});
#endregion #endregion
} static List<Person> GetPagedListByIndex(int pageIndex, int pageSize)
{
List<Person> dataList = PersonList;
return dataList.Skip((pageIndex - ) * pageSize).Take(pageSize).ToList();
}
}
}
Ling && Lambda的更多相关文章
- Linq表达式和Lambda表达式用法对比
什么是Linq表达式?什么是Lambda表达式?前一段时间用到这个只是,在网上也没找到比较简单明了的方法,今天就整理了一下相关知识,有空了再仔细研究研究 public Program() { List ...
- 委托、匿名委托、Lambda 表达式、Expression表达式树之刨根问底
本篇不是对标题所述之概念的入门文章,重点在阐述它们的异同点和应用场景.各位看官,这里就不啰嗦了,直接上代码. 首先定义一个泛型委托类型,如下: public delegate T Function&l ...
- Entity Framework学习笔记(六)----使用Lambda查询Entity Framework(1)
请注明转载地址:http://www.cnblogs.com/arhat 在前几章中,老魏一直使用Linq来查询Entity Framework.但是老魏感觉,如果使用Linq的话,那么Linq的返回 ...
- C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询
1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...
- .net 系列:Expression表达式树、lambda、匿名委托 的使用
首先定义一个泛型委托类型,如下: public delegate T Function<T>(T a, T b); 实现泛型委托的主体代码,并调用: public static strin ...
- .net 系列:Expression表达式树、lambda、匿名委托 的使用【转】
https://www.cnblogs.com/nicholashjh/p/7928205.html 首先定义一个泛型委托类型,如下: public delegate T Function<T& ...
- 你知道C#中的Lambda表达式的演化过程吗?
那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂. 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型.(用来传递数字的类型有int.float ...
- Linq表达式、Lambda表达式你更喜欢哪个?
什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...
- 背后的故事之 - 快乐的Lambda表达式(一)
快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜.它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能 ...
随机推荐
- EMC题2
易安信笔试题分享:1 protected成员函数能被肿么调用2 “has-a” relationship是指的啥,答案有instance, reference, pointer等...3 int, c ...
- python3 爬淘女郎
刚学到python 组合数据类型这里,机缘巧合之下得到了一个公开课的视频,也看了前辈写的,取其精华,去其糟粕的爬了一下: import urllibfrom urllib import request ...
- 程序员之殇 —— (The Beginning of the End)噩梦、崩坏
Look at all those faces out there (当我环视周遭的一张张脸孔) We are so different(我们是如此的不同) But we have one thing ...
- 浅谈localStorage、sessionStorage 与cookie
由于工作的需要,今天使用了下localStorage.sessionStorage和cookie,感觉这玩意儿还挺好用的. 关于localStorage与sessionStorage的知识点以及用法之 ...
- 遍历Map集合:java.util.Map.Entry、KeySet两种方式
遍历Map集合的两种方式: 1.用KeySet Map.keySet(),返回一个存放所有key的set集合,通过遍历集合,根据key值取出所有的value值. Map<String,Strin ...
- Spark算子--mapValues
转载请标明出处http://www.cnblogs.com/haozhengfei/p/ccc9d6b5c46ac7209c1e104bd219bfb4.html mapValues--Transfo ...
- jdbc、Mybatis插入数据主键回显的实现方法
插入数据的时候,往往需要获取主键值.但是有时候主键是自增长的那么,就不太适用手动添加主键值了,此时需要一种可以回显主键参数的方法, 下面以jdbc.mybatis的实现举例 此时使用的是jdbc的话或 ...
- TPshop学习(8)微信支付
http://blog.csdn.net/phper8/article/details/76383415 学习内容: https://www.kancloud.cn/tpshop/thinkphp5/ ...
- 什么是A记录/CNAME记录/MX记录/TXT记录
答: A 记录(Address)是用来指定主机名(或域名)对应的IP地址记录.当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器. CNAME记录 ( Canonical Name )是一 ...
- 爬虫利器BeautifulSoup模块使用
一.简介 BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式,同时应用场景也是非常丰富,你可以使用 ...