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. UVA10304

    全部遍历.设置两个下标,若相同i++,j++,不相同则j++. #include<stdio.h> #include<string.h> int main(){ ]; ]; s ...

  2. JavaScript模板引擎artTemplate.js——引入子模板

    之前的例子都是单一结构的对象,如果遇到复杂对象结构,我们可以通过引入子模板来实现html的渲染. 依旧以之前的数据作为例子: <div id="content">< ...

  3. 支持同步滚动的RichTextbox控件

    using System.Windows.Forms; public class SynchronizedScrollRichTextBox : System.Windows.Forms.RichTe ...

  4. Binding笔记

    Binding基础  绑定某个对象的属性值到控制上,写法如下: public class Order : INotifyPropertyChanged//只要实现此接口 { public event ...

  5. 常用SQL

    1. CEILING 向上取整2. FLOOR 向下取整3. FORMATmysql> SELECT FORMAT(12332.123456, 4); -> '12,332.1235'my ...

  6. weui 图片弹框

    添加图片与弹出效果对比: HTML: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  7. wpf ListBox删除

    绑定一个GUID对象 重绑定的数组中移除改对象,重新绑定.

  8. mysqlbinlog

    一.描述 转换二进制日志为易读的文本格式或用于管道后恢复数据 二.用法 -d, --database=name 仅列出指定数据库的条目 --start-datetime=name 从指定时间开始读取事 ...

  9. 【原创】自己动手写工具----签到器[Beta 2.0]

    一.前面的话 上一篇中基本实现了简单的签到任务,但是不够灵活.在上一篇自己动手写工具----签到器的结尾中,我设想了几个新增功能来提高工具的灵活程度,下面把新增功能点列出来看看: (1)新增其他的进程 ...

  10. PHP 自动加载规范PSR-4

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...