일부 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;
}
}
}
,이 코드에 대한 모든 것이 제대로 작동하는 것 같다 :
은 다음과 같습니다 코드 블록을 얻었다. "objects"컬렉션은 예상대로 채워집니다. "sub"는 수집 된 것으로 가져오고 채워진 Title 속성을 포함하여 예상되는 전체 속성 집합을 포함합니다. 실행 중에 오류가 발생하지 않습니다.하지만 각 Object에 완고하게 존재하는 SubObject.Title 속성 (표준 get; set; 코드 만 있음)은 비어 있습니다.
나는 손실에 처해있다. 아무도 무슨 일이 일어나고 있는지 설명해 주시겠습니까?
EDIT : for 루프와 ElementAt를 사용해서는 안되는 제안은 foreach 루프로 시작했지만 매번 새로운 SubObject를 가져 오는 것이므로 문제의 원인이 될 수 있다고 생각했습니다. 귀하의 도움으로 고쳐졌으며 ForEach가 복원되었습니다.
환호, 매트 모든
다음과 같이하십시오. [IEnumerable 내에서 항목 속성을 업데이트 하나 해당 속성이 설정되지 않은 채 있습니까?] (0120-385-3310) –
이 코드는 매우 느려질 수 있습니다. 웃기지도 않아. – ChaosPandion
* 실제 * 코드처럼 * 실제 * 코드를 복사하거나 붙여 넣을 수 있습니까? – ken2k