C#コードで動作が変わっているのを見て、私は説明することができません。私は理解の重要なビットを見逃している可能性がありますので、そこに誰かが私のために光を切り替えることを望む。あなたはそれをステップ実行するとC#でIEnumerable内でプロパティを設定できません。
IEnumberable<myObject> objects = GetObjectsFromApiCall();
for (int i = 0; i < objects.Count(); i++)
{
if (String.IsNullOrEmpty(objects.ElementAt(i).SubObject.Title))
{
SubObject sub = GetSubObjectFromDatabase((long)objects.ElementAt(i).SubObject.Id);
if (sub != null)
{
objects.ElementAt(i).SubObject.Title = sub.Title;
}
}
}
、このコードについてのすべてが正常に動作しているよう:
は、このようなコードのブロックを手に入れました。 「オブジェクト」コレクションは、期待どおりに作成されます。 "sub"は収集されたものとしてフェッチされ、Populated Titleプロパティを含む期待されるプロパティのフルセットを持ちます。実行中にエラーはスローされません。しかし、各オブジェクトに存在するSubObject.Titleプロパティ(標準のget; set;コードのみ)は頑固なままです。
私は迷っています。誰でも何が起こっているのかを説明します。
EDIT:forループとElementAtを使用しないことをお勧めした方は、foreachループを使い始めましたが、毎回新しいSubObjectを取得していたため問題の原因になっている可能性があると考えました。あなたのおかげで修正され、ForEachが復元されました。
乾杯、すべての マット・
あなたは:[IEnumerable内のアイテムプロパティを更新しますが、プロパティが設定されたままになりませんか?](http://stackoverflow.com/a/9104212/93732) –
このコードは非常に遅くなる可能性があります面白くない。 – ChaosPandion
実際の*コードのように見えるものではなく、あなたが持っている*実際のコードをコピー/ペーストできますか? – ken2k