【Linq】】的更多相关文章

DataContext 和 LINQ结合后会有巨大的能量 public class UserDataContext : DataContext { public Table<User> Users; public UserDataContext() : base(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\CsharpWorkspace\EntityProject\EntityProject\projectDatabase.md…
语言继承查询(Language Integrated Query, LINQ),在C#编程语言中集成了查询语法,可以用相同的语法访问不同的数据源,LINQ提供了不同数据源的抽象层,所以可以使用相同语法. public class Book { public int Id { get; set; } /// <summary> /// 书名 /// </summary> public string BookName { get; set; } /// <summary>…
A.1 聚合 聚合操作符(见表A-1),所有的结果只有一个值而不是一个序列. Average 和 Sum 针对数值 (任何内置数值类型)序列或使用委托从元素值转换为内置数值类型的元素序列. Min 和 Max 具有 不同数值类型的重载,不过也只能在对元素类型使用默认比较符或使用转换委托的序列上进行操 作. Count 和 LongCount 是等价的,不同之处仅仅在于返回类型.它们两者都具有两个重载—— 一个只统计序列长度,一个可以接受谓词,即只统计与谓词匹配的元素. string[] word…
" }; var l1 = strs.ToLookup(a => "a"); //Key=a elements=1,3 var l2 = strs.ToLookup(a => "a" + a); //Key=a1 elements=1 Key=a3 elements=3 var d1 = strs.ToDictionary(a => "a" + a); //Key=a1 value=1 Key=a3 value=3…
11.7.1 需要使用点标记的操作 最明显的必须使用点标记的情形是调用 Reverse . ToDictionary 这类没有相应的查询表达式语法的方法.然而即使查询表达式支持你要使用的查询操作符,也很有可能无法使用你想使用的特定重载.例如, Enumerable.Where 包含一个重载,将父序列的索引作为另一个参数传入委托.因此,要从序列中排除其他项可以这样: List<" }; == ).ToList(); var b = list.Select((Item, Index) =>…
11.5.1 使用 join 子句的内连接 如果你打算把一个巨大的序列连接到一个极小的序列上,应尽可能把小序列作为右边序列 class Program { static void Main(string[] args) { var query = from defect in SampleData.AllDefects join subscription in SampleData.AllSubscriptions on defect.Project equals subscription.Pr…
11.6.1 使用 group...by 子句进行分组 class Program { static void Main(string[] args) { var query = from defect in SampleData.AllDefects where defect.AssignedTo != null group defect by defect.AssignedTo; var query2 = SampleData.AllDefects .Where(defect => defe…
11.2.4  Cast . OfType 和显式类型的范围变量 这两个操作符很相似:都可以处理任意非类型化的序列(它们是非泛型 IEnumerable 类的扩展方法),并返回强类型的序列. Cast 通过把每个元素都转换为目标类型(遇到不是正确类型的任何元素的时候,就会出错)来处理,而 OfType 首先进行一个测试,以跳过任何具有错误类型的元素. class Program { static void Main(string[] args) { ArrayList list = new Ar…
Select() 和 SelectMany() 的工作都是依据源值生成一个或多个结果值.Select() 为每个源值生成一个结果值.因此,总体结果是一个与源集合具有相同元素数目的集合.与之相反,SelectMany() 将生成单一总体结果,其中包含来自每个源值的串联子集合.作为参数传递到 SelectMany() 的转换函数必须为每个源值返回一个可枚举值序列.然后,SelectMany() 将串联这些可枚举序列以创建一个大的序列. private class NamedEntity { publ…
[转载]ADO.NET与ORM的比较(3):Linq to SQL实现CRUD 说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据.在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外,还可以使用NHibernate这个Hibernate在.NET中的实现ORM,如果你对第…