[過去ログ] C#, C♯, C#相談室 Part97 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
930
(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には同じ値が入っているのに何が違うん?
932: デフォルトの名無しさん (ワッチョイ 7101-O6VA) [sage] 2024/06/01(土) 22:17:31.50 ID:M7bbwRO60(1) AAS
>>930
式が評価されるタイミングで指してるiが何かってこと
遅延評価されないようにするか2番目のコードのようにイテレーション単位でそれぞれ別の値を指すようにすれば解決
外部リンク:ericlippert.com
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s