- masaru_b_cl
- 4412
- 0
- 4
- 0
どんな使い方ですか? letって単に結果を一旦コレクションにして遅延評価しないやつですよね? RT @masaru_b_cl: LINQのクエリ構文のletってSelectManyのsyntax sugarになるのね。
2011-08-01 15:32:24@masaru_b_cl letは通常Selectですね、多重fromがSelectManyで(少し前の私のTweetはちょっと誤ったこと書いてしまいましたががが)
2011-08-01 15:32:29. @hiroyuki_mori ということでしたf(^^;鵜呑みにした私が悪いっす>< QT @neuecc: @masaru_b_cl letは通常Selectですね、多重fromがSelectManyで(少し前の私のTweetはちょっと誤ったこと書いてしまいましたががが)
2011-08-01 15:39:02from x in a let s = x.ToString() select s;は a.Select(x=>x.ToString())か。確かにSelectじゃん。ちゃんと自分で考えよう>俺
2011-08-01 15:41:45@masaru_b_cl letはそこで新しいコレクションが作成されてて、そこまでの結果が格納されている感じですね。SelectManyはforeachが2重ネストしていることを想像すれば、そんな感じですよw
2011-08-01 15:42:05@hiroyuki_mori ??いえ、そのletの理解はおかしいです。コレクションは生成されません、生成されるのは結果を格納するための中間の匿名型です。
2011-08-01 15:43:23なるほど。そういう意味ですね。 RT @hidori: @hiroyuki_mori @neuecc コレクションではないです。変更不可な一時変数ですお。
2011-08-01 15:48:38@hiroyuki_mori 例えば.Select(x=>new{Hoge,Huga}).Select(x=>new{Tako,Ika})を「遅延評価しない新しいコレクション」とは言いませんよね。letが生成するのは、まさにそれなので。
2011-08-01 15:49:17@hiroyuki_mori @neuecc 変数なんでコレクションも入ることは入りますが (^^; Select() と取り違えてたり?
2011-08-01 15:49:22@neuecc Select().Select()は遅延評価しますが、letはそこで一旦結果を作成しませんか?
2011-08-01 15:52:50