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
あなたは書式指定子の書式文字列を使用して作成することができます。 次のようにフォーマット文字列は次のとおり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 "、1、3、" 4 "、" 5 "、6 }。 2 VARのクエリ= data.OfType < ストリング > (); 3 Console.WriteLineを(" 输出ストリング类型" )。 4 のforeach(VARの 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 のforeach(VARの項目でferrariDrivers1) 4 { 5 Console.WriteLineを(アイテム)。 6 }
複合リターンの方法及び結果は同じ句です。
5:ソート
ORDERBY句と句のORDERBYの降順
1人の VARのレーサー= から R でFormulal.GetChampions() 2 r.Country == " イタリア" 3 ORDERBYの下降r.Wins 4 セレクトRと、 5 のforeach(VARのレーサーでレーサー) 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 のforeach(VARのレーサーで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:グループ化
クエリ結果をグループ化するためのキー値によると、あなたはグループの句を使用することができます