[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild2 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
984
(1): 2020/01/11(土)02:03 ID:eNMw2FnY(1/6) AAS
>>981-983
実行時の話な
var seq = list.Where(...)が返すのはIEnumだが、
実際にforeach(var n in seq)で遅延評価されるときには一つずつの値を返してるし、それが次のWhereに送られてる
ループの位置を見てみろ、配列は一回しか回ってないだろ?
986: 2020/01/11(土)02:34 ID:eNMw2FnY(2/6) AAS
>>985
yieldのごく普通の振る舞いなんだからイテレーター使ったことあるなら分かるだろ?

ちなみに具体的なソースはこれな
外部リンク[cs]:github.com
988
(1): 2020/01/11(土)03:42 ID:eNMw2FnY(3/6) AAS
とりあえず>>969>>976から読み取ると、LINQで繋がれたメソッドは全部独立したIEnumerableを返してるような誤解をしてるんだと思う
実際は宣言時にチェーンの最後にあるメソッドが一つのIEnumerableを返すだけだし、間にある他のメソッドは最後のメソッドがデリゲートとして一括で実行する
だからMoveNextは一つの要素に一回ずつしか基本的に呼ばれず、従ってループも一回だけ
これで納得出来ないならもう5個チェーン繋げたら5回ループされてると思っても良いよ、別にそれでも実害は一切無い
991
(1): 2020/01/11(土)12:19 ID:eNMw2FnY(4/6) AAS
>>989
率直に言ってお前は何を主張したいの?
まずそれ教えてくれ
そのレスを読むだけだとわざわざ実装のURLまで見せたのにソースも読めない子なんだぁとしか思えん
996
(1): 2020/01/11(土)13:01 ID:eNMw2FnY(5/6) AAS
>>993
だろ、やっぱり入れ子になってると勘違いしてるよな?

サンプルソース書いてあげたから見てみな
IL_009aのループ一度しか無いし中身の取り出しも一回だけ
その後でLINQメソッドに渡されたデリゲートを適用してそのままループ内の処理に進んでる
外部リンク:imgur.com
1000: 2020/01/11(土)13:17 ID:eNMw2FnY(6/6) AAS
頭悪い子だな
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.115s