LINQ入門

A、LINQアーキテクチャ

LINQは、5つの部分の合計が含まれています。

  • メモリコレクションの操作:オブジェクトへのLINQ。
  • データソースのXML操作:XMLにLINQ。
  • LINQ to SQLは:SQL Serverデータソースの操作は、MicrosoftがSQLにエンティティ、LINQにLINQにSQLにLINQからのシフトの開発に注力されており、もはや更新を提供しないと宣言しました。
  • エンティティへのLINQ:Entity Frameworkのは一部であり、データベースで使用される標準的なメカニズムとしてSQLにLINQ LINQを置換しました。
  • データセットにLINQ:データに対する操作のDataTableのセット。

 

2011122721265876 [1]

二、LINQ構文

  LINQのクエリ式は、句または選択したグループの句の末尾に句から始まります。2つの句の間に、どこで使用することができる、ORDERBY、参加、クエリ演算子のようにしましょう。「遅延評価」の特徴を有します。

  簡単な例である以下、クエリint配列要素は5未満であり、昇順に配置します:

INT [] ARR = 新しい INT [] { 1426795124 }。
VaRのクエリ= から R 到着
             ここで R < 5 
            ORDERBYのR
             セレクトR。
foreachのVARの項目クエリ)
{ 
    Console.WriteLineを(アイテム)。
} 
Console.ReadLine();

LINQは、二つの構文があります:ラムダクエリの構文と文法を

コンパイラは、適切な拡張メソッドを呼び出すために組み立て時にLINQクエリを変換します。

     关键字有:、どこから、選択し、グループの中に、ORDERBY、で、聞かせて、参加する、等しい、ことによって、昇順、降順等に。

LINQクエリ式

 

キーワード

機能

...で...

データ・ソースを指定し、複数のデータソースから検索句データを前記複数の変数の範囲を見つけること。

注: C#コンパイラは、「化合物句から「クエリ式にSelectMany()拡張メソッド。

参加...に...に...等しいです...

連想複数のデータソースを指定します。

てみましょう

式の結果の式中性子保存されたクエリの変数のスコープを導入。多くの場合、読みコードが容易になり、奥行きのより良い感覚を実現。

ORDERBY、降順

ソートフィールドと並べ替えの要素を指定します。ソート複数のフィールドがある場合、プライマリおよびセカンダリにより決定フィールド順が昇順と降順ソートの二種類を指定することができ

どこ

フィルタ基準要素を指定します。where句複数、すべての資格を得るために満たす必要があり、タイの条件で述べています。句述語を&&、||条件式の複数に接続された場合に各々が使用されてもよいです。

グループ

要素は、グループ化フィールドを指定します。

選択

返されるクエリ対象のデータを指定し、あなたは、さえ匿名型を任意の型を指定することができます(現在、多くの場合、匿名型として指定)

一時的な識別子を提供します。識別の結果は、グループに参加する参照、及び句を選択することができます。

1)キーワードにJOIN句をに翻訳された直後に表示されますGroupJoin(変数への問い合わせが引き続き使用することができます前に)

2)選択またはグループ句の後に、それは我々がどこ、orderbyの導入を続けることができるように、クエリを再起動し、句を選びますに、それは、クエリ式の簡単な方法を構築するためのステップバイステップです。(変数に照会する前に利用できなくなりました)

以下扩展方法存在对应的查询表达式关键字:

Where、Select、SelectMany、OrderBy、ThenBy、OrderByDescending、ThenByDescending、GroupBy、Join、GroupJoin。

2011102815134291 [1]

三、标准查询操作符

Enumberable 类定义的标准查询操作符。 

类别

标准查询操作符

说明

筛选操作符

Where

OfType<TResult>

称为筛选操作符定义返回元素的条件。

Where     使用谓词,返回符合条件的元素。

OfType<TResult>  返回符合类型的元素。

投射操作符

Select

SelectMany

投射操作符用于把对象转换为另一个类型的新对象。

Select 和 SelectMany 定义根据选择器函数选择结果值的投射。

排序操作符

OrderBy

ThenBy

OrderByDescending

ThenByDescending

Reverse

排序操作符改变返回的元素的顺序。

Orderby 升序排序。

OrderBydescending  降序排序。

TheBy 和 ThenByDescending 二次排序。

Reverse 反转集合元素。

连接操作符

Join

GroupJoin

用于合并不直接相关的集合。

Join     根据键选择器函数连接两个集合。

GroupJoin   连接两个集合。

组合操作符

GroupBy

ToLookup

组合操作符把数据放在组中。

GroupBy   组合公共键的元素。

Tookup    创建一个一对多字典,组合元素。

限定操作符

Any

All

Contains

元素满足指定的条件。

Any 满足谓词函数的函数。

All  所有元素是否都满足谓词函数。

Contains   检查某个元素是否在集合中。

分区操作符

Take

Skip

TakeWhile

SkipWhile

返回集合的子集。

Take 从集合提取元素个数。

Skip 跳过指定的元素个数,提取其他元素。

TakeWhile 提取条件为真的元素。

Set操作符

Distinct

Union

Intersect

Except

Zip

Set操作符返回一个集合。

Distinct 删除重复的元素。

Union 返回集合中唯一元素。

Intersect  返回两个集合都有的元素。

Except  只出现在一个集合中的元素。

Zip 两个集合合并为一个元素。

元素操作符

First

FirstOrDefault

Last

LastOrDefault

ElementAt

ElementAtOrDefault

Single

SingleOrDefault

元素操作符返回一个元素。

First                 返回第一个满足条件的元素。

FirstOrDefault  类似First,如果未找到满足条件元素,返回类型的默认值。

Last                 返回最后一个满足条件的元素。

ElementAt        返回元素的位置。

Single               返回一个满足条件的元素。如果有多个元素都满足条件,就抛出一个异常。

聚合操作符

Count

Sum

Min

Max

Average

Aggregate

聚合操作符计算集合值。

Sum 总和。

Count  所有元素个数。

Min  最小元素。

Max  最大元素。

Average 平均值。

Aggregate  根据输入的表达式获取聚合值。

转换操作符

ToArray

AsEnumerable

ToList

ToDictionary

Cast<TResult>

 

生成操作符

Empty

Range

Repeat

 

Empty 空集合。

Range 返回一系列数字。

Repeat 返回始终重复一直的集合。

 

一、            示例业务背景介绍

示例参考《C#高级编程(第六版)》LINQ章节(P267 - P296),进行改编。

打开示例代码我们看到:

画像

1. Racer.csファイル、フォーミュラワン世界の定義選手権の情報を。

2. Team.csファイル、フォーミュラワン世界の定義チームチャンピオンシップ情報を。

3. Formula1.csファイルには、二つの重要な静的メソッドが含まれています(F1は「フォーミュラワン」のための略語です)

1)GetChampions():ライダーのグループのリストを返します。このリストは、今年19502007の間のすべてのフォーミュラワン世界が含まれてい選手権

2)GetContructorChampions():チームのリストの配列を返します。このリストは、今年19852007回の間のすべてのフォーミュラワン世界含まれているコンストラクターズチャンピオンシップを。

おすすめ

転載: www.cnblogs.com/springsnow/p/11286711.html