내보기 페이지에서 1 ~ 5 개의 이미지를 컨트롤러로 전달하고 있습니다.C# 목록 컬렉션의 정확한 요소 수를 알 수있는 방법
<input type="file" name="Images" /><br />
<input type="file" name="Images" /><br />
<input type="file" name="Images" /><br />
<input type="file" name="Images" /><br />
<input type="file" name="Images" /><br />
나는이
IEnumerable<HttpPostedFileBase> images
처럼 내 컨트롤러에 받고 내가이
List<Photo> Photos = new List<Photo>();
for (int i = 0; i < Images.Count(); i++)
{
foreach (var image in Images)
{
Photo p = new Photo();
p.ImageMimeType = image.ContentType;
p.ImageData = new byte[image.ContentLength];
image.InputStream.Read(p.ImageData, 0, image.ContentLength);
Photos.Add(p);
}
}
그러나 Images.Count() 반환과 노력 myDomainModel 에 다른 데이터와 함께이 데이터를 전송 전체 목록의 용량, 그래서 내가 게시물을 할 때 5 번 대신 2 번 이미지를 말하게하면 문제가 발생하여 5 번 반복 할 수 있습니다.
그래서 질문은 목록의 요소 수를 얻는 방법입니다. 용량 없음.
고맙습니다.
에 대한 루프가 외부의 점은 무엇입니까? 바깥 쪽과 내부 foreach 루프에서 컬렉션을 반복하고있는 것처럼 보입니다. 따라서 이미지 수를 제곱하고 있습니다 : Images.Count = 5 => Photos.Count = 25; Images.Count = 2 => Photos.Count = 4. – sheikhjabootie
첫 루프에서 for 루프없이 시도했습니다. 그럼 제안은 뭐니? – BobRock
for-loop를 제거하십시오. 그리고 foreach-loop를 유지하십시오. 일부 이미지가 비어있는 것이 문제 인 경우 foreach 루프의 내용을 if (image.ContentLength> 0) {...} 블록으로 래핑 할 수 있습니다. 그렇게하면 실제로 내용이있는 이미지 만 추가됩니다. 페이지의 코드가 올바른 수의 이미지 만 제출하면 더 좋을 것입니다. – sheikhjabootie