[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild2 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
969(2): 2020/01/10(金)15:40 ID:5Sf2RA1L(2/2) AAS
>>968
いやもし5段階に組まれてたら下から見るとMoveNext5回呼ばれる事でやっと元のコレクションなりにたどり着くやん
あれインタフェースになってて1番下でのMoveNextでもとのに辿り着くっけ?
970(1): 2020/01/10(金)18:42 ID:6FaPVqIC(3/3) AAS
>>969
例えばこんなLINQがあるとするだろ
var seq = list.Where(A).Where(B).Where(C);
foreach(var n in seq) Console.WriteLine(n);
内部的にはこの処理と同じ
var tmp = list.GetEnumerator();
while(tmp.MoveNext()){
省8
988(1): 2020/01/11(土)03:42 ID:eNMw2FnY(3/6) AAS
とりあえず>>969と>>976から読み取ると、LINQで繋がれたメソッドは全部独立したIEnumerableを返してるような誤解をしてるんだと思う
実際は宣言時にチェーンの最後にあるメソッドが一つのIEnumerableを返すだけだし、間にある他のメソッドは最後のメソッドがデリゲートとして一括で実行する
だからMoveNextは一つの要素に一回ずつしか基本的に呼ばれず、従ってループも一回だけ
これで納得出来ないならもう5個チェーン繋げたら5回ループされてると思っても良いよ、別にそれでも実害は一切無い
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.558s*