クエリー(LINQ)について ( No.48 ) |
- 日時: 2022/10/18 02:02
- 名前: REDCHEEKS
- クイアじゃないよ、クイアはLGBTの話、クイアじゃなくてクエリの話だよ。
クエリーとは、データベース問い合わせ言語のこと。 昔は、データを検索するとか、並べ替えるとか、そのような事にもいちいちプログラムしていたが、それでは効率が上がらないし、間違いの元ということで、そういったお決まりの処理を専門に行うシステムが誕生した。 それを「データベース」という。 だから今では、検索するとか並べ替えるとか、そういう処理そのものを、実務でプログラミングすることは無い。 だからと言って、プログラムが不要になったわけではない。 データベースに対して「こうこうこういう条件で検索し、こういう条件で並べ替えてくれ」と指示を出すことは必要であり、そのためのプログラム言語がクエリーなのだ。
クエリーといえば、昔からSQLが有名だが、最近はさらに進化して、C# などのプログラム言語に統合して組み込まれた、LINQなんかが最新だな。 というわけで、これまで通り、課題Hを使ってエッチな説明をしていこう。
http://mediasp.kir.jp/img20220326/imgloglog-box/img20221017225627.png @ クエリー(LINQ)の使用を宣言する。 A foreach のひとつ前の行で「変態コレクション」から特定の条件(男のみ)で絞り込み「選ばれし変態たち」というコレクションを作成する。 B foreach 文内の「変態コレクション」を「選ばれし変態たち」に置き換える(コメントも含め)。 C 「課題H」をクリックし実行する。
【結果】 D 男である REDCHEEKS のみに対して、おしおき() と おなに() が実行されればOK(女である ざんちゃん さんは表示されないこと)
【解説】 追加したプログラム ************************************************** var 選ばれし変態たち = 変態コレクション.Where(h => h is 男); ************************************************** について説明しよう。
このなかで、Where(h => h is 男) がクエリーである。
さらに、Where の後のカッコ内は、ラムダ式と呼ばれる、検索条件である。 「=>」の左にある「h」は、変態の1人を指す。 「=>」の右にある「h is 男」は検索条件である。
※ つまりこれの意味するところは、変態コレクションに含まれる1人の変態を「h」とし「h is 男」の条件を満たす変態を抽出するという事である。
【課題】 var 選ばれし変態たち = 〜 の後を変更してみよう。
var 選ばれし変態たち = 変態コレクション.Where(h => h.嗜好タイプ == spankType.DisciplineSpanking); // 嗜好タイプ=ディシプリンのみに絞り込む
var 選ばれし変態たち = 変態コレクション.OrderByDescending(h => h.嗜好タイプ); // 嗜好タイプで逆順に並び変える
|
クエリー(LINQ)について構文解説 ( No.49 ) |
- 日時: 2022/10/19 00:15
- 名前: REDCHEEKS
- クエリーの構文については、SQL あるいは LINQ でネットを検索すれば、わんさか出てくるだろうが、ここでは基本的なものについて、エッチな例を交えて説明しよう。
(1) 検索条件の指定(Where)
>>48 で既に例を示しているが、Where は検索条件の指定である。
Where(h => h is 男) ⇒ 男を検索する
Where(h => h.嗜好タイプ == spankType.DisciplineSpanking) ⇒ ディシプリン派を検索する
Where(h => h is 男 || h.嗜好タイプ == spankType.DisciplineSpanking) ⇒ 男またはディシプリン派を検索する
Where(h => h is 女 && h.嗜好タイプ == spankType.DisciplineSpanking) ⇒ 女でかつディシプリン派を検索する
(2) 項目を抽出する(Select)
必要なデータ項目のみを取得する。 あるいは変換を行う。
Select(h => h.嗜好タイプ) ⇒ 嗜好タイプ項目を取得する
Select(h => h as 男) ⇒ 男として扱う(変換する) ※ 女が混じっているなどして変換できなければnullとなりエラーの原因となるため、(3)の複合パターンを使う
(3) where と Select の複合パターン例
Where(h => h is 男).Select(h => h as 男) ⇒ 男性を得る
Where(h => h is 男).Select(h => h as 男).Select(h => h.ちんちん) ⇒ 男性器のみを得る
Where(h => h is 男).Select(h => h as 男).Where(h => h.ちんちん.太さ >= 3) ⇒ ちんちんの太さが3以上の男性を得る
(4) 並べ替え(昇順:OrderBy / 降順:OrderByDescending)
Where(h => h is 女).Select(h => h as 女).OrderByDescending(h => h.おまんこ.感度) ⇒ おまんこの感度順に並べる
|