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. Spring框架学习笔记(7)——代理对象实现AOP

    AOP(面向切面编程) AOP(Aspect-Oriented Programming, 面向切面编程): 是一种新的方法论, 是对传统 OOP(Object-Oriented Programming ...

  2. 程序员听到bug后的N种反应,太形象了

    程序员的世界里,不止有代码,还有bug,bug,bug 当出现bug时,程序员们的反应是怎样的呢?

  3. [学习OpenCV攻略][016][RedHat下安装OpenCV]

    安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ...

  4. [国嵌笔记][023][ARM寻址方式]

    寻找方式 1.处理器根据指令中给出的信息来找到指令所需操作数的方式 2.立即数寻址 操作数本身在指令中给出,立即数前加”#”表示立即数寻址,操作数在指令中 3.寄存器寻址 利用寄存器中的数值作为操作数 ...

  5. 虚拟主机、VPS以及云主机的区别和对比

    对于很多需要建网站的朋友来说,虚拟主机是必须要了解的基础知识.虚拟主机相对于VPS与云主机来说出现的较早,也是被大多数站长所了解的主机.很多人容易将这三者混淆,弄不清楚三者的联系与区别.那么虚拟主机. ...

  6. Mysql Order By 字符串排序,mysql 字符串order by

    Mysql Order By 字符串排序,mysql 字符串order by ============================== ©Copyright 蕃薯耀 2017年9月30日 http ...

  7. javascript如何自动去除所有空格?

    1.jquery自带了trim方法:    $.trim(" abc ") // abc 2.自己写方法: function trim(str) { return str.repl ...

  8. 闲聊cassandra

    原创,转载请注明出处 今天聊聊cassandra,里面用了不少分布式系统设计的经典算法比如consistent hashing, bloom filter, merkle tree, sstable, ...

  9. 量化投资与Python之pandas

    pandas:数据分析 pandas是一个强大的Python数据分析的工具包.pandas是基于NumPy构建的. pandas的主要功能具备对其功能的数据结构DataFrame.Series集成时间 ...

  10. EL表达式遍历Map集合

    <% Map<String,String> map2 = new HashMap(); map2.put("a","hello world") ...