クエリー(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.おまんこ.感度)    ⇒ おまんこの感度順に並べる