11.【Linq】】的更多相关文章

11.2.4  Cast . OfType 和显式类型的范围变量 这两个操作符很相似:都可以处理任意非类型化的序列(它们是非泛型 IEnumerable 类的扩展方法),并返回强类型的序列. Cast 通过把每个元素都转换为目标类型(遇到不是正确类型的任何元素的时候,就会出错)来处理,而 OfType 首先进行一个测试,以跳过任何具有错误类型的元素. class Program { static void Main(string[] args) { ArrayList list = new Ar…
[深入理解C++11[5]] 1.原子操作与C++11原子类型 C++98 中的原子操作.mutex.pthread: #include<pthread.h> #include <iostream> using namespace std; ; pthread_mutex_t m = PHTREAD_MUTEX_INITIALIZER; void* func(void*){ long long i; ;i < 100000000LL; i++){ pthread_mutex_…
[深入理解C++11[4]] 1.基于范围的 for 循环 C++98 中需要告诉编译器循环体界面范围.如for,或stl 中的for_each: int main() { ] = { , , , , }; int * p; ]); ++ p){ *p *= ; } ]); ++ p){ cout << *p << '\t'; } } ; } int action2( int & e){ cout << e << '\t'; } int main()…
[深入理解C++11[3]] 1.POD类型 Plain Old Data. Plain 表示 了POD是个普通的类型.C++11将POD划分为两个基本概念的合集: 1)平凡的(trivial) 2)标准布局的(standard layout) 一个平凡的类或结构体应该符合以下定义: 1)拥有平凡的默认构造函数(trivial constructor)和析构函数(trivial destructor). 平凡 的 默认 构造 函数 就是说 构造 函数“ 什么 都 不干”. 通常 情况下, 不 定…
[深入理解C++11[2]] 1.继承构造函数. 当基类拥有多个构造函数的时候,子类不得不一一实现. C++98 可以使用 using 来使用基类的成员函数. #include < iostream> using namespace std; struct Base { void f( double i){ cout << "Base:" << i << endl; } }; struct Derived : Base { using B…
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…
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…
A.1 聚合 聚合操作符(见表A-1),所有的结果只有一个值而不是一个序列. Average 和 Sum 针对数值 (任何内置数值类型)序列或使用委托从元素值转换为内置数值类型的元素序列. Min 和 Max 具有 不同数值类型的重载,不过也只能在对元素类型使用默认比较符或使用转换委托的序列上进行操 作. Count 和 LongCount 是等价的,不同之处仅仅在于返回类型.它们两者都具有两个重载—— 一个只统计序列长度,一个可以接受谓词,即只统计与谓词匹配的元素. string[] word…