[過去ログ] C#, C♯, C#相談室 Part97 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
932: デフォルトの名無しさん (ワッチョイ 7101-O6VA) [sage] 2024/06/01(土) 22:17:31.50 ID:M7bbwRO60(1) AAS
>>930930(1): デフォルトの名無しさん (ワッチョイ d968-GD45) [] 2024/06/01(土) 20:40:34.67 ID:eDXQns4R0(1) AAS
C#の仕様なのかLINQの仕様なのかわからんけど
↓これだと数量[i]が取得出来ないのに
for (int i = 0; i < 5; i++) {
q[i] = from a in q1
select new {
商品 = a.商品,
数量 = a.数量[i]
};
q2 = q2.Concat(q[i]);
}
↓こうやって一旦別の変数に入れると取得できる
for (int i = 0; i < 5; i++) {
int b = i;
q[i] = from a in q1
select new {
商品 = a.商品,
数量 = a.数量[b]
};
q2 = q2.Concat(q[i]);
}
iとbには同じ値が入っているのに何が違うん?
式が評価されるタイミングで指してるiが何かってこと
遅延評価されないようにするか2番目のコードのようにイテレーション単位でそれぞれ別の値を指すようにすれば解決
外部リンク:ericlippert.com
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.053s