1、首先定义一个图书类。专门存放图书的属性信息。
代码如下:
 
 //Book.cs

 using System;

 namespace LinqTest
{
public class Book
{
public string Name { get; set; }
public string Author { get; set; }
public decimal Price { get; set; }
public DateTime ReleaseDate { get; set; } public Book()
{ } public Book(string name, string anthor, decimal price, DateTime releasedata)
{
Name = name;
Author = anthor;
Price = price;
ReleaseDate = releasedata;
}
}
}
 
2、接着新建一个类专门用来对图书类进行操作。代码如下:
 
 //BookManage.cs

 using System;
using System.Collections.Generic; namespace LinqTest
{
public static class BookManage
{
private static List<Book> _books; public static IList<Book> GetBook()
{
return _books ?? (_books = new List<Book>()
{
new Book("He", "Joke", , new DateTime()),
new Book("She", "Bob", , new DateTime()),
new Book("I", "Cham", , new DateTime())
});
}
}
}
 
3、最后在主程序中执行。
 
 //Program.cs

 using System;
using System.Collections.Generic;
using System.Linq; namespace LinqTest
{
internal class Program
{
private static void Main()
{
Console.WriteLine("/**Select Test*/\n");
var test = BookManage.GetBook().Where(c => c.Author.StartsWith("J")).Select(c => new
{
c.Name,
c.Author,
c.Price,
c.ReleaseDate
});
foreach (var i in test)
{
Console.WriteLine(i);
} Console.WriteLine("\n/**SelectMany Test*/");
var list1 = new List<int>() { , , , , , };
var list2 = new List<int>() { , , , }; var query = list1.SelectMany(c => list2);
foreach (var variable in query)
{
Console.Write("{0}", variable);
}
Console.WriteLine("\n"); Console.WriteLine("\n/*GroupBy test**/\n");
var list3 = new List<int>() { , , , , , , , , }; var group = list3.GroupBy(c => c); foreach (var variable in group)
{
Console.WriteLine("{0} Count : {1}", variable.Key, variable.Count());
}
Console.WriteLine("\n/*ToLookUp**/\n");
var list4 = new List<Book>()
{
new Book("A","B",,new DateTime()),
new Book("AA","BB",,new DateTime()),
new Book("AAA","BBB",,new DateTime()),
new Book("A","BBB",,new DateTime())
}; var lookup = list4.ToLookup(c => c.Name); foreach (var v in lookup)
{
Console.WriteLine("=====Group : {0}====", v.Key);
foreach (var g in v)
{
Console.WriteLine("Author: {0} ,Price: {1}, Release: {2}", g.Author, g.Price, g.ReleaseDate);
}
} Console.WriteLine("\nOderBy And Thenby Test!\n");
var orderquery = list4.OrderBy(c => c.Price).ThenBy(c => c.Name).Select(c => new
{
c.Name,
c.Author,
c.Price,
c.ReleaseDate
});
foreach (var item in orderquery)
{
Console.WriteLine(item);
} Console.WriteLine("\n获取集合测试!\n");
var list5 = new List<int>() { , , , , , , , , }; var newList = list5.Where(c => c > ).ToList().Select(c => new
{
c
}); foreach (var r in newList)
{
Console.WriteLine(r);
} Console.WriteLine(" \n聚合和汇总测试\n");
const double myBalance = 100.0;
int[] withdramItem = { , , , , , , };
var banlance = withdramItem.Aggregate(myBalance, (originbalance, nextwithdraw) =>
{
Console.WriteLine("originbalance:{0},nextwithdraw {1}", originbalance, nextwithdraw);
Console.WriteLine("Withdraw status:{0}", (nextwithdraw <= originbalance) ? "OK" : "Failed");
return ((nextwithdraw <= originbalance) ? (originbalance - nextwithdraw) : originbalance);
});
Console.WriteLine("Ending Balance:{0}", banlance); Console.WriteLine("\n***筛选***\n"); var query1 = BookManage.GetBook().Where(c => c.Price > ).Select(c => new
{
c.Name,
c.Author,
c.Price,
c.ReleaseDate
}).Take();
foreach (var r in query1)
{
Console.WriteLine("{0}", r);
}
}
}
}
 
4、运行结果如下:
 

 
 

LINQ 函数的实战演练测试的更多相关文章

  1. LINQ函数

    LINQ函数虽然和LINQ语句实现了同样的功能,但LINQ函数使用起来更加快捷.学过数据库的感觉LINQ语句都不难,但语句比较长. 会LINQ函数,才算会LINQ. 1.Where(),结果过滤 Li ...

  2. C++ 回调函数 实现 的测试代码

    最近项目里使用了异步Socket,使用的是完成端口做的e; Accept,receive,send 等完全的异步实现(多线程) 然后 又要多个端口使用, 后来想到包装下完成端口Socket,然后当有事 ...

  3. substr函数索引创建测试

    技术群里小伙伴,沟通说一条经常查询的SQL缓慢,单表SQL一个列作为条件,列是int数值类型,索引类型默认创建. 一.SQL文本substr函数索引创建测试 ,) nm1 ')需求,将上述SQL执行速 ...

  4. 安卓开发经验分享:资源、UI、函数库、测试、构建一个都不能少(转)

    除了高超的武艺,每位黑忍者还需要装备最好的武器.在软件开发的世界里,好的工具能让我们的生活变得更轻松,在更短的时间里写出更棒的代码. 时光回到2008年,那时安卓还很年轻.只有几个相关的博客和谷歌官方 ...

  5. Underscore.js 函数节流简单测试

    函数节流在日常的DOM界面数据交互中有比较大的作用,可以减少服务器的请求,同时减少客户端的内存影响 Underscore.js  本省就包含了函数节流的处理函数 _.throttle 和 _.debo ...

  6. 字符串join函数跟+号测试

    字符串join函数for循环+区别: 原因是这样的,字符串是不可变对象,当用操作符+连接字符串的时候,每执行一次+都会申请一块新的内存,然后复制上一个+操作的结果和本次操作的右操作符到这块内存空间,因 ...

  7. ABAP函数篇2 测试DATE_CONVERT_TO_FACTORYDATE

    DATE_CONVERT_TO_FACTORYDATE   根据日期返回工厂日历日期 函数功能说明: 标出工作日的计算方法 输入传输 CORRECT_OPTION = '+'如果指定的日期不是工作日, ...

  8. 【转】安卓开发经验分享:资源、UI、函数库、测试、构建一个都不能少

    本文由 ImportNew - 唐尤华 翻译自 gigavoice.如需转载本文,请先参见文章末尾处的转载要求. 除了高超的武艺,每位黑忍者还需要装备最好的武器.在软件开发的世界里,好的工具能让我们的 ...

  9. pytest文档54-Hooks函数terminal打印测试结果(pytest_report_teststatus)

    前言 使用命令行执行pytest用例的时候,会在 terminal 终端打印整个用例的测试结果: .代表通过的用例 F代表失败的用例 E代表异常的用例 如果我们不喜欢这种报告结果,可以通过 pytes ...

随机推荐

  1. 011商城项目:图片服务器的安装---nginx

    这个是电商的项目,不是传统项目,所以给图片单独架一台服务器. 我们看上图: 用户上传图片时上传到Tomcat1或者Tomcat2.然后Tomcat1和Tomcat2通过FTP服务把图片上传到图片服务器 ...

  2. .NET跨平台之旅:升级ASP.NET Core示例站点

    ASP.NET Core示例站点网址:http://about.cnblogs.com/ 首先安装最新版的 .NET Core 运行环境,从 https://github.com/dotnet/cli ...

  3. 结构体内嵌函数指针实现C语言面向对象

    结构体内嵌函数指针 #include<stdio.h> void say(int age) { printf("我%d岁了\n",age); } struct stud ...

  4. tomcat启动报错: org.apache.catalina.deploy.WebXml addFilter

    解决方法为:在Tomacat7的context.xml文件里的<Context>中加上<Loader delegate="true" />

  5. U8采购订单联查采购入库单

    1.表头rdrecord01,字段ipurorderid(采购订单ID), cOrderCode(采购订单号)要与采购订单表头主键和单号对应 表体rdrecords01,字段cPOID(采购订单号), ...

  6. 使用 CoordinatorLayout 出错 inflating class android.support.design.widget.CoordinatorLayout

    ava.lang.RuntimeException: Unable to start activity ComponentInfo{com.czr.ianpu/com.czr.ianpu.MainAc ...

  7. .net的一致性哈希实现

    最近在项目的微服务架构推进过程中,一个新的服务需要动态伸缩的弹性部署,所有容器化示例组成一个大的工作集群,以分布式处理的方式来完成一项工作,在集群中所有节点的任务分配过程中,由于集群工作节点需要动态增 ...

  8. redis并发问题

    redis中的并发问题 使用redis作为缓存已经很久了,redis是以单进程的形式运行的,命令是一个接着一个执行的,一直以为不会存在并发的问题,直到今天看到相关的资料,才恍然大悟~~ 具体问题实例 ...

  9. 自定义webkit浏览器滚动条样式

    ::-webkit-scrollbar { width: 5px; height: 5px; } ::-webkit-scrollbar-track { background-color: trans ...

  10. NOIp2016 游记

    DAY -2 不要问我为什么现在就开了一篇博客. 本来想起个NOIp2016爆零记或者NOIp2016退役记之类的,但是感觉现在不能乱立flag了.所以就叫游记算了. 前几场模拟赛崩了一场又一场,RP ...