[C#]基盤のLINQオペレーターの指示:

1:スクリーニング

ここで、where句、あなたが複数の式を組み合わせることができます。例えば少なくとも15の、米国のゲームや英国のレーシングドライバーを受賞見つけます

   するvar =レーサーから R  Formulal.GetChampions()r.Winsは> 15 &&(r.Country == " USA " || r.Country == " UK "を選択し、R。
            foreachのVARの R レーサー)
            { 
                Console.WriteLineを($ " {R:A} " )。
            }

         

 

 同じ結果:

 VAR racers2 = Formulal.GetChampions()ここで、(R => r.Wins> 15 &&(r.Country == "USA" || r.Country == "UK"))(R => r)を選択します。。。

  

ここで、R:Aが指定されているA

https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/formatting-numeric-results-table

あなたは書式指定子の書式文字列を使用して作成することができます。 次のようにフォーマット文字列は次のとおりAxx、前記

  • A 書式指定、フォーマットの種類に適用される制御値があります。
  • xx 出力をフォーマットされたビットの精度指定子効果です。 説明範囲精度記号値0〜99です。

 2:インデックスフィルター

索引 - ここで、()メソッドの多重定義の2番目のパラメータを渡すことができます。

それぞれの結果のためのカウンターは時にインデックスフィルタを返されました。あなたは、式の中で、このインデックスを使用することができます。インデックスに基づいて計算を実行します。

1    // クエリがAで始まるすべての姓をレーサー、インデックスが奇数であるレーサー
2              VAR racers3 = Formulal.GetChampions()
        .Where((R&LT、指数)=> r.LastName.StartsWith(" A ")&& %インデックス2!= 0 ); 3。 foreachのVARのレーサーracers3) 4。 { 5。 Console.WriteLineを($ " {レーサー:A} " ); 6。 }

3:型スクリーニング

OfType()拡張メソッドを使用するフィルタの種類に基づい。

1つの             オブジェクト []データ= { " 1 "13" 4 "" 5 "6 }。
2              VARのクエリ= data.OfType < ストリング > ();
3              Console.WriteLineを(" 输出ストリング类型" )。
4              のforeachVARの S クエリ)
 5              {
 6                  Console.WriteLineを(S)。
7              }
 8 
9              Console.WriteLineを(" 输出INT类型" )。
10              VAR QUERY2 = data.OfType < 整数 > ();
11              foreachのVARの Q QUERY2)
 12              {
 13                  Console.WriteLineを(Q)。
14              }

 

 

4:句からの化合物 

あなたは、それ自体が、一連のメンバーであるオブジェクトのメンバーによってフィルタリングする必要がある場合は、句から複合体を使用することができます

以下の実施例における車はRの属性であり、文字列車のアレイであります

// ファミリーのメンバーであり、それ自体一つのオブジェクト部材によれば、所望の場合スクリーニング、句から複合材料を使用することができ
            VaRの ferrariDriversの= から R&LT )(Formulal.GetChampions
                 から C r.Cars
                 C == " フェラーリ" [並べ替えr.LastName
                 SELECT r.FirstName + " " + r.LastName;
             foreachのVARの項目ferrariDrivers)
            { 
                Console.WriteLineを(項目); 
            }    
                 

 

C#コンパイラとLINQのSelectMany()拡張メソッドに句クエリからの化合物。

SelectMany()メソッドは、反復配列を配列決定するために使用することができます。

1   Console.WriteLineを(" ===== SelectMany查询方法====== " )。
2              VAR ferrariDrivers1 = Formulal.GetChampions()。SelectMany(R => r.Cars、(R、C)=> 新しい {レーサー= R、車= C})。(R => r.Car == " フェラーリ").OrderBy(R => r.Racer.LastName).Select(R => r.Racer.FirstName + "  " + r.Racer.LastName + "  " + r.Car)。
3              のforeachVARの項目ferrariDrivers1)
 4              {
 5                  Console.WriteLineを(アイテム)。
6              }

複合リターンの方法及び結果は同じ句です。

 

 5:ソート

ORDERBY句と句のORDERBYの降順

1人の VARのレーサー= から R Formulal.GetChampions()
 2                  r.Country == " イタリア" 3 ORDERBYの下降r.Wins
 4 セレクトRと、
5 のforeachVARのレーサーレーサー)
 6             {
 7                 Console.WriteLineを(レーサー)。
8             }
 9 10             Console.WriteLineを()。
11 VAR racers1 = Formulal.GetChampions()。(R => r.Country == " イタリア
                                                   
              ").OrderByDescending(R => r.Wins);
 12              foreachのVARのレーサーracers1)
 13              {
 14                  Console.WriteLineを(レーサー);
 15              }

 説明:[並べ替え()とOrderByDescending()メソッドはIOrderEnumerable <TSOURCE>このインターフェイスから派生し返します。

IEnumerableを<TSOURCE>インターフェース。しかし、追加の方法を含むCreateOrderedEnumerable <TSOURCE>()。この方法は、さらに、シーケンスを発注するために使用されます。同じを持っているそのうちの2つ並べ替えキーワードセレクタは、あなたがThenBy()ThenByDescending、および()メソッドを使用することができた場合、ソート続けています。コレクションを注文するThenBy()とThenByDesceding()メソッドを複数追加することができます。

1つ  のvar = racers2
 2から R )Formulal.GetChampions(ORDERBY r.Country、r.LastName、r.FirstName 選択 r)を.Take(10 )。
3              のforeachVARのレーサーracers2)
 4              {
 5                  Console.WriteLineを(レーサー)。
6              }
 7  
8              Console.WriteLineを()。
9  
10              VAR racer3 = Formulal.GetChampions()。[並べ替え(R => r.Country).ThenBy(R => r.LastName)
 11                 .ThenBy(R => r.FirstName).Take(10 )。
12              foreachのVARのレーサーracer3)
 13              {
 14                  Console.WriteLineを(レーサー)。
15              }

 6:グループ化

クエリ結果をグループ化するためのキー値によると、あなたはグループの句を使用することができます

おすすめ

転載: www.cnblogs.com/SignX/p/11448977.html