LINQ via C# 系列文章

简介:

LINQ via C#

Recently I am giving a series of talk on LINQ. the name “LINQ via C#” is copied from “ CLR via C# ”, one of my favorite books. Currently part 1 – 8 are finished, and the entire series should be 10 parts. The contents are: Introducing LINQ What Is LINQ

LINQ via C# Events Posters Design

10 LINQ via C# events have been held successfully. Each event is a pure English speaking technical talk. I designed some posters for the events, with no enough time to design for each event. LINQ via C# part 4 In part 3, lambda expression of C# is introduced...
Introducing LINQ (1) What Is LINQ

[ LINQ via C# series ] This LINQ series is from my 10 parts of LINQ via C# talks . And the poster designs for the events are here . What is LINQ Here is the roadmap of .NET and C#: Date .NET Framework CLR C# IDE Introduced Features February 13th, 2002...
Introducing LINQ (2) Advancements Overview

[ LINQ via C# series ] According to MSDN : LINQ is one of Microsoft’s most exciting, powerful new development technologies. Independent to data source This sample mentioned in part 1 is working on items in a .NET array: var results = from number in source...
Understanding C# 3.0 Features (1) Automatic Property

[ LINQ via C# series ] As the fundamental of LINQ, This chapter will explain the new language features of C# 3.0, all of which are syntactic sugars. This part is about the automatic property. In C# 2.0 a property can be declared like this: public class...
Understanding C# 3.0 Features (2) Object Initializer And Collection Initializer

[ LINQ via C# series ] Take this Person type as an example: public class Person { public string Name { get ; set ; } public int Age { get ; set ; } } Object initializer In C# 2.0 we create an Person instance and initialize it like this: Person person...
Understanding C# 3.0 Features (3) Type Inference

[ LINQ via C# series ] The “var” keyword has been introduced from the beginning . It is a new language feature called type inference in C# 3.0. Local variable type inference Consider the local variable declaration and initialization: TypeName a = b; Since...
Understanding C# 3.0 Features (4) Anonymous Type

[ LINQ via C# series ] This feature provides a way to create an instance without declare the type: var mark = new { Name = "Mark" , Age = 18 }; Since the type name is unknown at this time when writing code, this is called a anonymous type. Compilation...
Understanding C# 3.0 Features (5) Extension Method

[ LINQ via C# series ] Extension method is a fancy and powerful syntactic sugar in C# 3.0. Extension methods are very important when writing functional style C# code. Define an extension method for a class When we define an extension method for a type...
Understanding C# 3.0 Features (6) Lambda Expression

[ LINQ via C# series ] Lambda expression is another powerful syntactic sugar making C# functional. In this post, “Lambda expression” simply means “C# Lambda expression”. The native concept of lambda expression will be introduced in the later lambda calculus...
Understanding C# 3.0 Features (7) Query Expression

[ LINQ via C# series ] This kind of code has been introduced again and again: var positive = from number in source where number > 0 orderby number descending select number.ToString( CultureInfo .InvariantCulture); This is called the query expression...

Understanding C# 3.0 Features (8) Partial Method

[ LINQ via C# series ] The is a very simple feature. From partial class to partial method Partial class is introduced by C# 2.0. With the partial keyword, the definition of one type is able to be divided into several files. For example, if creating a...
Understanding LINQ to Objects (1) Programming Paradigm

[ LINQ via C# series ] Declarative vs. imperative This post mentioned that LINQ introduced new programming constructs to C#. Take a look at the samples in the beginning post : int [] source = new int [] { 0, -5, 12, -54, 5, -67, 3, 6 }; List < int...
Understanding LINQ to Objects (2) Method Chaining

[ LINQ via C# series ] It is obvious the Where(), OrderBy(), Select() can be invoked fluently: int [] source = new int [] { 0, 1, -2, 3, 24, 6, 3 }; var results = source.Where(item => item > 0 && item < 10) .OrderBy(item => item) ...
Understanding LINQ to Objects (3) Query Methods

[ LINQ via C# series ] After understanding the programming paradigm and why LINQ query methods can be chaining , this post shows the details of LINQ query methods. Methods like Where(), OrderBy(), OrderByDescending(), and Select() are exhibited again...
Understanding LINQ to Objects (4) Iterator Pattern

[ LINQ via C# series ] According to Wikipedia : Iterator pattern is a design pattern in which iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation. An Iterator object encapsulates...
Understanding LINQ to Objects (5) Implementing Iterator

[ LINQ via C# series ] Iterator pattern is the core pattern of LINQ to Objects implementation. To filter, order, or project the data items of a data collection, of course the code need to go through the collection and figure out the results. The previous...
Understanding LINQ to Objects (6) Deferred Execution

[ LINQ via C# series ] One post at the beginning of this series mentioned that deferred execution is a important advancement of LINQ. The following code show how is the execution deferred: IEnumerable < int > source = Enumerable .Range(-2, 5); ...
Understanding LINQ to Objects (7) Query Methods Internals

[ LINQ via C# series ] This post explains how are the LINQ to Objects standard query methods implemented. Once again, it will be exhibited that iterator pattern is the core pattern of LINQ to Objects query. The first thing need to emphasize is, not all...
Understanding LINQ to Objects (8) The Design Of IEnumerable

[ LINQ via C# series ] Currently in .NET, iterator pattern is implemented via IEnumerable and IEnumerator (or IEnumerable and IEnumerator): namespace System.Collections { // Represents a collection which can be iterated. public interface...
Understanding LINQ to SQL (1) Object-Relational Mapping

[ LINQ via C# series ] According to Wikipedia , Object-relational mapping is: a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages. This is the LINQ to SQL sample...
Understanding LINQ to SQL (2) IQueryable

[ LINQ via C# series ] The core of LINQ to Objects is IEnumerable: Query methods are designed for IEnumerable as extension methods , like Where(), Select(), etc.; Query methods are designed to be fluent, LINQ to Objects queries can be...
Understanding LINQ to SQL (3) Expression Tree

[ LINQ via C# series ] In LINQ to Objects, lamda expressions are used everywhere as anonymous method, like Where(): public static IEnumerable Where( this IEnumerable source, Func predicate...
Understanding LINQ to SQL (4) Data Retrieving Via Query Methods

[ LINQ via C# series ] After understanding: object model generating from SQL Server schema query method chaining on IQueryable SQL are translated from expression tree, which is required by IQueryable now it is time to take a deeper look...
Understanding LINQ to SQL (5) Remote And Local Method Call

[ LINQ via C# series ] Since LINQ to SQL is translating C# methods into SQL, all the C# methods are required to make sense in SQL. According to MSDN : A local method call is one that is executed within the object model. A remote method call is one that...
Understanding LINQ to SQL (6) Working With Deferred Execution

[ LINQ via C# series ] Similar with LINQ to Objects, LINQ to SQL supports deferred execution when possible. For example: using ( NorthwindDataContext database = new NorthwindDataContext ()) { IQueryable < Category > source = database.Categories;...
Understanding LINQ to SQL (7) Data Changing

[ LINQ via C# series ] After understanding how to retrieve data with LINQ to SQL, now take a look at data change (create (insert) / update / delete). Object Identity When changing data queried by LINQ to SQL, one common confusion for LINQ to SQL beginners...
Understanding LINQ to SQL (8) Transaction

[ LINQ via C# series ] Database data Changing cannot be talked about without transactions . Implementing TRANSACTION (BEGIN / COMMIT / ROLLBACK) The previous post has shown that, when invoking SubmitChanges(), the translated SQL (INSERT / UPDATE / DELETE...
Understanding LINQ to SQL (9) Concurrent Conflict

[ LINQ via C# series ] Conflicts are very common when concurrently accessing the same data. Conflicts in concurrent data access The following code presents the concurrent conflict scenario: Action < int , Action < Category >> updateCategory...
Understanding LINQ to SQL (10) Implementing LINQ to SQL Provider

[ LINQ via C# series ] So far LINQ to SQL data CRUD (Creating / Retrieving / Updating / Deleting) has been explained. This post takes a deeper look at the internal implementation of LINQ to SQL query. The provider model Unlike IEnumerable / IEnumerable...
Understanding LINQ to SQL (11) Performance

[ LINQ via C# series ] LINQ to SQL has a lot of great features like strong typing query compilation deferred execution declarative paradigm etc., which are very productive. Of course, these cannot be free, and one price is the performance. O/R mapping...

本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

目录
相关文章
|
9月前
|
前端开发 API 数据库
C# Abp框架入门系列文章(一)(下)
C# Abp框架入门系列文章(一)(下)
316 0
|
9月前
|
SQL 开发框架 缓存
C# Abp框架入门系列文章(一)(上)
C# Abp框架入门系列文章(一)
239 0
|
前端开发 C# 开发工具
想用C# .Net生成行为验证码,还得看这篇文章
为了增强网站的安全性,我们在网站的登录模块或信息输入模块加入了验证码功能,那么在C# .Net中如何实现验证码呢?本文借助KgCaptcha实现了这个功能。
想用C# .Net生成行为验证码,还得看这篇文章
C#多线程(18):一篇文章就理解async和await
C#多线程(18):一篇文章就理解async和await
217 0
C#多线程(18):一篇文章就理解async和await
|
搜索推荐 C# 索引
C#如何实现文章添加内链
内链文章的最初动机是让读者在我的博客获得更好的阅读体验,并获得更多的价值。如果我的读者访问了我的一篇文章,发现不仅仅回答他需要的答案,还提供了更多相关内容的信息,让他们能在更多的相关主题去扩展阅读,他们迟早会喜欢并满意我的博客。让读者满意就是我们的目标,读者他们满意了,通常就会再次回访(这让你的博客变得有”粘性”)并和他们的朋友分享。
|
Linux C# Android开发
C#爬虫使用代理刷csdn文章浏览量
昨天写了一篇关于“c#批量抓取免费代理并验证有效性”的文章,接着昨天的目标继续完成吧,最终实现的目的就是刷新csdn文章的浏览量(实际上很简单,之前博客园的文章也是可以使用代理ip来刷的,后来不行了),刷文章的浏览量本身是可耻的,没有任何意义,当然技术无罪。
1596 0
|
C# 开发者
C#面向插件级别的软件开发 - 开源研究系列文章
  在现在的面向对象的分析与设计软件开发过程中,最开始就是面向对象的软件开发。但是,在实际的软件开发过程中,很多都是面向接口的开发方式,这种是一种面向对象开发的模式。但是,今天笔者给大家带来的是面向插件的软件开发方式,典型的例子就是播放器Winamp和Photoshop的模式。
1291 0