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的更多相关文章

  1. Linq表达式和Lambda表达式用法对比

    什么是Linq表达式?什么是Lambda表达式?前一段时间用到这个只是,在网上也没找到比较简单明了的方法,今天就整理了一下相关知识,有空了再仔细研究研究 public Program() { List ...

  2. 委托、匿名委托、Lambda 表达式、Expression表达式树之刨根问底

    本篇不是对标题所述之概念的入门文章,重点在阐述它们的异同点和应用场景.各位看官,这里就不啰嗦了,直接上代码. 首先定义一个泛型委托类型,如下: public delegate T Function&l ...

  3. Entity Framework学习笔记(六)----使用Lambda查询Entity Framework(1)

    请注明转载地址:http://www.cnblogs.com/arhat 在前几章中,老魏一直使用Linq来查询Entity Framework.但是老魏感觉,如果使用Linq的话,那么Linq的返回 ...

  4. C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询

    1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法 ...

  5. .net 系列:Expression表达式树、lambda、匿名委托 的使用

    首先定义一个泛型委托类型,如下: public delegate T Function<T>(T a, T b); 实现泛型委托的主体代码,并调用: public static strin ...

  6. .net 系列:Expression表达式树、lambda、匿名委托 的使用【转】

    https://www.cnblogs.com/nicholashjh/p/7928205.html 首先定义一个泛型委托类型,如下: public delegate T Function<T& ...

  7. 你知道C#中的Lambda表达式的演化过程吗?

    那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂. 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型.(用来传递数字的类型有int.float ...

  8. Linq表达式、Lambda表达式你更喜欢哪个?

    什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...

  9. 背后的故事之 - 快乐的Lambda表达式(一)

    快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜.它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能 ...

随机推荐

  1. EMC题2

    易安信笔试题分享:1 protected成员函数能被肿么调用2 “has-a” relationship是指的啥,答案有instance, reference, pointer等...3 int, c ...

  2. python3 爬淘女郎

    刚学到python 组合数据类型这里,机缘巧合之下得到了一个公开课的视频,也看了前辈写的,取其精华,去其糟粕的爬了一下: import urllibfrom urllib import request ...

  3. 程序员之殇 —— (The Beginning of the End)噩梦、崩坏

    Look at all those faces out there (当我环视周遭的一张张脸孔) We are so different(我们是如此的不同) But we have one thing ...

  4. 浅谈localStorage、sessionStorage 与cookie

    由于工作的需要,今天使用了下localStorage.sessionStorage和cookie,感觉这玩意儿还挺好用的. 关于localStorage与sessionStorage的知识点以及用法之 ...

  5. 遍历Map集合:java.util.Map.Entry、KeySet两种方式

    遍历Map集合的两种方式: 1.用KeySet Map.keySet(),返回一个存放所有key的set集合,通过遍历集合,根据key值取出所有的value值. Map<String,Strin ...

  6. Spark算子--mapValues

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/ccc9d6b5c46ac7209c1e104bd219bfb4.html mapValues--Transfo ...

  7. jdbc、Mybatis插入数据主键回显的实现方法

    插入数据的时候,往往需要获取主键值.但是有时候主键是自增长的那么,就不太适用手动添加主键值了,此时需要一种可以回显主键参数的方法, 下面以jdbc.mybatis的实现举例 此时使用的是jdbc的话或 ...

  8. TPshop学习(8)微信支付

    http://blog.csdn.net/phper8/article/details/76383415 学习内容: https://www.kancloud.cn/tpshop/thinkphp5/ ...

  9. 什么是A记录/CNAME记录/MX记录/TXT记录

    答: A 记录(Address)是用来指定主机名(或域名)对应的IP地址记录.当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器. CNAME记录 ( Canonical Name )是一 ...

  10. 爬虫利器BeautifulSoup模块使用

    一.简介 BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式,同时应用场景也是非常丰富,你可以使用 ...