LINQ标准查询操作符学习笔记四
摘要:11、分区扩展方法Take()和Skip()等用于分区操作,这些操作可用于数据分页。在下面的Linq查询中,把扩展方法添加到查询最后,Skip()方法或略掉根据分页大小和页数得到的项数,Take()方法根据分页大小提取一定数目的项:[csharp] view plaincopyintpagesize...
阅读全文
LINQ标准查询操作符学习笔记三
摘要:6、对筛选结果进行分组使用group子句和GroupBy()扩展方法可以对查询结果进行分组。下边的例子是将赛车冠军按照国家进行分组,并列出一个国家赛车冠军的总数:[csharp] view plaincopy//简ò单蹋inq分?组哩?varquery=fromrinFormula1.GetCha...
阅读全文
LINQ标准查询操作符学习笔记二
摘要:三、使用Linq进行查询有了这些预备知识和实体类,我们就可以使用Linq进行查询了。 1、简单的筛选使用Where子句可以对数据源进行简单的筛选。下变例子是找出至少赢得15场比赛的奥地利车手:[csharp] view plaincopy//////1、最简单的查询///staticvoidLinq...
阅读全文
Lambda表达式学习记录
摘要:Lambda表达式可以简化C#编程的某些方面,用法非常灵活。因此也不容易掌握。下边是我学Lambda表达式的一点记录。1、Lambda表达式是与委托紧密联系的。只要有委托参数类型的地方,就可以使用Lambda表达式。Lambda表达式的运算符是=>。运算符左边列举出了需要的参数,右边定义了赋予Lam...
阅读全文
Action<T>和Func<T>委托
摘要:泛型Action委托和Func委托是系统定义的两个泛型委托。 Action委托表示引用一个返回类型为Void的方法。这个委托存在不同的变体,可以传递之多16个不同的参数类型。同时,没有泛型 参数的Action类可以调用没有参数的方法。例如,Action表示有一个输入参数的方法,Action表示有两个...
阅读全文
LINQ标准查询操作符学习笔记一
摘要:Linq是语言集成查询的简称。Linq简化了语言查询,是的程序员可以使用相同的语法查询不同的数据源。文使用的Linq查询包含了两种方式,一种是直接查询,另一种是使用System.Linq中定义的扩展方法进行的查询。对于扩展方法查询的方式,使用了大量的Lambda表的是和系统定义的委托Func。不熟...
阅读全文
LINQ标准查询操作符(一)——select、SelectMany、Where、OrderBy、OrderByDescending、ThenBy、ThenByDescending和Reverse
摘要:一、投影操作符1. SelectSelect操作符对单个序列或集合中的值进行投影。下面的示例中使用select从序列中返回Employee表的所有列:[csharp] view plaincopyusing(NorthwindDataContextdb=newNorthwindDataContext...
阅读全文
LINQ标准查询操作符(二)——Join、GroupJoin、GroupBy、Concat、
摘要:四、联接操作符联接是指将一个数据源对象与另一个数据源对象进行关联或者联合的操作。这两个数据源对象通过一个共同的值或者属性进行关联。LINQ有两个联接操作符:Join和GroupJoin。1. JoinJoin操作符类似于T-SQL中的inner join,它将两个数据源相联接,根据两个数据源中相等的...
阅读全文
LINQ标准查询操作符(三)——Aggregate、Average、Distinct、Except、Intersect、Union、Empty、DefaultIfEmpty、Range、Repeat
摘要:七、聚合操作符聚合函数将在序列上执行特定的计算,并返回单个值,如计算给定序列平均值、最大值等。共有7种LINQ聚合查询操作符:Aggregate、Average、Count、LongCount、Max、Min和Sum。1. AggregateAggregate操作符对集合值执行自定义聚合运算。例如,...
阅读全文
十二、相等操作符
摘要:如果两个序列的对应元素相等且这两个序列具有相同数量的元素,则视这两个序列相等。SequenceEqual方法通过并行地枚举两个数据源并比较相应元素来判断两个序列是否相等。如果两个序列完全相等,返回true,否则返回false。以下代码是SequenceEqual方法的实现过程:[csharp] vi...
阅读全文
LINQ标准查询操作符(四)—AsEnumerable,Cast,OfType,ToArray,ToDictionary,ToList,ToLookup,First,Last,ElementAt
摘要:转换操作符是用来实现将输入对象的类型转变为序列的功能。名称以“As”开头的转换方法可更改源集合的静态类型但不枚举(延迟加载)此源集合。名称以“To”开头的方法可枚举(即时加载)源集合并将项放入相应的集合类型。1. AsEnumerable所有实现了IEnumerable接口的类型都可以调用此方法来获...
阅读全文
对List取交集、联集及差集
摘要:1. 取交集 (A和B都有)List A : { 1 , 2 , 3 , 5 , 9 }List B : { 4 , 3 , 9 } var intersectedList = list1.Intersect(list2); 結果 : { 3 , 9 }判斷A和B是否有交集 boolean isIn...
阅读全文
SQL in与exists的执行效率比较
摘要:SQL中in可以分为三类: 形如select * from t1 where f1 in ('a','b'),应该和以下两种比较效率:select * from t1 where f1='a' or f1='b' 或者 select * from t1 where f1 ='a' union all select * from t1 f1='b',你可能指的不是这一类,这里不做讨论。 形如select * from t1 where f1 in (select f1 from t2 where t2
阅读全文
SQLServer数据集合的交、并、差三种集合运算
摘要:SQLServer2005通过intersect,union,except和三个关键字对应交、并、差三种集合运算。他们的对应关系可以参考下面图示相关测试实例如下:use tempdb goif(object_id('t1') is not null) drop table t1if(object_id('t2') is not null) drop table t2gocreate table t1 (a int)insert into t1 select 1 union select 2 union select 3create table t2 (a int
阅读全文
获取外网IP
摘要:string tempip = ""; try { HttpWebRequest wr = (HttpWebRequest)System.Net.WebRequest.Create("http://iframe.ip138.com/ic.asp"); Stream s = wr.GetResponse().GetResponseStream(); StreamReader sr = new StreamReader(s, Encoding.Default); string all = sr.ReadToEnd(); int start = all.Ind
阅读全文
SQL语句优化技术分析
摘要:最近几周一直在进行数据库培训,老师精湛的技术和生动的讲解使我受益匪浅。为了让更多的新手受益,我抽空把SQL语句优化部分进行了整理,希望大家一起进步。一、操作符优化1、IN 操作符用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组
阅读全文