一,C#对象初始化语法:

             Product p = new Product()
{
Name = "小黄人",
Price = ,
Description = "机智",
Category = "奢饰品",
ProductID =
};

声明对象嘛,应该有分号的。。。。

其实,我们在使用集合或数组的时候,早就使用过这种语法糖了,如:

 List<int> tempList = new List<int> { , ,  };

二、使用拓展方法

第三方类或者是没有源代码的类,可以通过用拓展方法来获得所需的功能。

 1      public static class ProductListExtension
2 {
3 public static decimal TotalPrice(this ProductList list)
4 {
5 decimal d = 0;
6 foreach (Product item in list.Products)
7 {
8 d += item.Price;
9 }
10 return d;
11 }
12 }

注意,拓展方法所在的类必须是静态类,拓展方法也必须是静态方法。

调用的方法,与普通的方法使用方法一致,如下:

 decimal temp = p.TotalPrice();

三、使用Lambda表达式

Lambda表达式以委托的方式简写方法体。

学习Lambda之前,先引入委托Func<T,Tresult>,用来封装具有一个T类型参数,并返回一个TResult类型参数的方法,该委托可以作为其他方法的参数进行传递。这种写法实际上就是不用自己定义委托。

参考:http://www.cnblogs.com/oneword/archive/2010/08/31/1813994.html

             //Func首先是定义一个委托,委托所指向方法只有一个参数Prod,有一个返回值bool
Func<Product, bool> func = delegate(Product prod)
{
return prod.Category == "语文";
};
//用Lambda的方式来简化委托的定义
func = prod => prod.Category == "语文";
//或者是不声明Func,直接把Lambda表达式作为参数传递给指定的以Func委托为参数的方法
foreach (Product p in ProductArray.Filter(prod => prod.Category == "语文"))
{
dd += p.Price;
}

四、临时

DataTable dt=new DataTable();

dt.AsEnumerable()返回一个IEnumrable<T>对象,其泛型参数T为DataRow,此返回对象可用在LinQ表达式中。

EnumerableRow.Select()方法转化原DataRow元素,示例代码如下:

                return dt.AsEnumerable().Select(row => new Person()
{
Name =Convert.ToString(row["Name"]),
Age = Convert.ToInt32(row["Age"])
}.ToList();

上面代码的作用是将DataTable(即dt)中的每一行(即DataRow)转化成一个Person对象,最后生成一个Person的List。

【C#】读书笔记的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  3. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  4. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  5. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  6. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

  7. LOMA280保险原理读书笔记

    LOMA是国际金融保险管理学院(Life Office Management Association)的英文简称.国际金融保险管理学院是一个保险和金融服务机构的国际组织,它的创建目的是为了促进信息交流 ...

  8. 《3D Math Primer for Graphics and Game Development》读书笔记2

    <3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...

  9. 《3D Math Primer for Graphics and Game Development》读书笔记1

    <3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...

  10. 《More Effective C#》读书笔记

    <More Effective C#>这本书,大概是四年前看完的,但只整理了一部分读书笔记,后面有时间的话,会陆续补充的. More Effective C# :使用泛型 More Eff ...

随机推荐

  1. iOS 将WKWebView内的HTML打印为PDF

    使用的webview为WKWebView,核心部分代码(Swift 4): // 创建打印渲染 let printPageRenderer:PDFRender = PDFRender() // 获取渲 ...

  2. iOS UITableView ExpandableHeader(可形变的Header)

    最常见的header就是在tableView下拉时header里的图片会放大的那种, 最近研究了一下,自己实现了这种header. 1.设置TableView的contentInset(为header ...

  3. AVL树(平衡二叉树)

    定义及性质 AVL树:AVL树是一颗自平衡的二叉搜索树. AVL树具有以下性质: 根的左右子树的高度只差的绝对值不能超过1 根的左右子树都是 平衡二叉树(AVL树) 百度百科: 平衡二叉搜索树(Sel ...

  4. 线段树(单点更新) HDOJ 2795 Billboard

    题目传送门 /* 主要利用线段树求区间最值,sum[]代表位置可用空间 每次找到最大值的位置 功能:查询最靠前能容纳广告的位置 */ #include <cstdio> #include ...

  5. AIX系统常用命令

    netstat -an | grep 9090  可以看到该端口正被监听,但却不知道是哪个进程占用了该端口 1. netstat -Aan|grep 端口号找到该端口连接对应的PCB/ADDR和连接的 ...

  6. C. Arpa's loud Owf and Mehrdad's evil plan DFS + LCM

    http://codeforces.com/contest/742/problem/C 首先把图建起来. 对于每个a[i],那么就在i --- a[i]建一条边,单向的. 如果有一个点的入度是0或者是 ...

  7. NTP服务简介

    定义:NTP全称为Network Time Protocol,即网络时间协议.是用来使计算机时间同步的一种协议.它可以使计算机对服务器或时钟源做同步,可以提供高精度的时间校正(LAN 上与标准时间小于 ...

  8. 极其强大的运维工具——pscp、pssh、pslurp

    1.pscp 用于将本地文件复制到远程主机 pscp -h xxx.host 本地文件 远程目录 //xxx.host是所有目的IP的文件,一个IP一行 2.pssh 在远程机器上执行命令 pssh ...

  9. php传json格式给C++时乱码解决方案

    今天在做给C++传json数据时,C++无法识别到中文 网上查下原因有json只支持utf-8,但是我的整个项目编码都是utf8的,没有出现过其它编码,所以问题还是抛给了C++解决,后来经一高手解答说 ...

  10. re正则表达式讲解—初步认识

    # f = open(r"C:\Users\LENOVO\Desktop\模特.txt",'r') # 1.常规提取文档内容方法 # contacts = [] # for i i ...