同样直接上代码: List<Student> ss = new List<Student>(); Student ss1 = , Age = , Name = " }; Student ss2 = , Age = , Name = " }; Student ss3 = , Age = , Name = " }; Student ss4 = , Age = , Name = " }; Student ss5 = , Age = , Name =…
XML序列化   #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="obj">序列对象</param> /// <param name="filePath">XML文件路径</param> /// <returns>是否成功</returns> public static bool S…
泛型委托及委托中所涉及到匿名方法.Lambda表达式 引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录下来,以备复习使用. 委托: 日常工作中,常常见到委托用在具体的项目中.而且委托使用起来相对来说也是非常简单的,下面列举一个委托实例用以说明如何使用委托,代码如下: class Program { public delegate int Calc…
在Linq to sql 和 Entity framework 中使用lambda表达式实现left join 我们知道lambda表达式在Linq to sql 和 Entity framework 中使用join函数可以实现inner join,那么怎么才能在lambda表达式中实现left join呢?秘诀就是在join后面加上一个函数DefaultIfEmpty函数,实际上这个函数在linq中貌似也只有将inner join转换为left join的作用,示例如下 var joinRes…
Linq中string转int的方法   在做批量删除时,需把一串id值所对应的数据删除,调试出现问题: Linq语句中如果使用ToString()进行类型转换,编译时不会报错,但执行时会出现如下错误: “LINQ to Entities 不识别方法"System.String ToString()",因此该方法无法转换为存储表达式.” 原因是Linq不支持ToString()函数. 可用下述方法进行转换解决: string source = "1,2,3,4,5"…
LINQ 查询语法与方法语法      通过使用 C# 3.0 中引入的声明性查询语法,介绍性 LINQ 文档中的多数查询都被编写为查询表达式. 但是,.NET 公共语言运行时 (CLR) 本身并不具有查询语法的概念. 因此,在编译时,查询表达式会转换为 CLR 确实了解的内容:方法调用. 这些方法称为“标准查询运算符”,它们具有如下名称:Where.Select.GroupBy.Join.Max.Average 等.可以通过使用方法语法而非查询语法来直接调用这些方法.      通常我们建议使…
在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在不牺牲可读性的前提下,进一步简化了委托. LINQ的基本功能就是创建操作管道,以及这些操作需要的任何状态.这些操作表示了各种关于数据的逻辑,例如数据筛选,数据排序等等.通常这些操作都是用委托来表示.Lambda表达式是对LINQ数据操作的一种符合语言习惯的表示方式. Lambda表达式不仅可以用来创…
EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动导入MVC程序集,因为默认.NET环境(GAC)中没有这个程序集 create database MyFirstEF on primary ( name='MyFirstEF.mdf', --修改为自己电脑上SQL DB路径 filename='E:\ProgramMSSQLServerDB\MyF…
建议27:在查询中使用Lambda表达式 LINQ实际上是基于扩展方法和Lambda表达式的.任何LINQ查询都能通过扩展方法的方式来代替. var personWithCompanyList = from person in personList ?"Micro":"Sun" }; foreach (var item in personWithCompanyList) { Console.WriteLine(item.ToString()); } 等价于: ?&q…
Lambda的前世今生 早在C# 1.0 时,C#中就引入了委托(delegate)类型的概念.通过使用这个类型,我们可以将函数作为参数进行传递.在某种意义上,委托可理解为一种托管的强类型的函数指针. 通常情况下,使用委托来传递函数需要一定的步骤: 定义一个委托,包含指定的参数类型和返回值类型. 在需要接收函数参数的方法中,使用该委托类型定义方法的参数签名. 为指定的被传递的函数创建一个委托实例. 可能这听起来有些复杂,不过本质上说确实是这样.上面的第 3 步通常不是必须的,C# 编译器能够完成…