[英]foreach loop through first item in array c#
我想遍歷文件,並始終確保它只是我遍歷的數組中的一項
var files = Request.Form.Files;
var singleFile = files[0];
foreach (var file in singleFile)
{
}
我收到錯誤foreach語句無法對類型'?'的變量進行操作 因為“?” 不包含“ GetEnumerator”的公共定義
我怎樣才能解決這個問題 ! 謝謝
您不能遍歷非集合類型的項目。 您已將Request.Form.Files
的第一個文件分配給變量。 因此,此變量引用的不是單個文件。
您可以使用Count
-property的的HttpFileCollection
:
int fileCount = Request.Form.Files.Count;
if(fileCount > 0)
{
HttpPostedFile firstFile = Request.Form.Files[0];
// do something with it ....
}
如果要枚舉所有內容,可以在Request.Form.Files
上使用循環:
foreach (HttpPostedFile file in Request.Form.Files)
{
// do something with it
}
錯誤非常明顯。 singleItem
是從原來的集合,而不是實際的征收只是一個單一的項目 。 如果要檢查集合中只有一個元素,請使用files.Count
:
if(files.Count != 1)
Console.WriteLine("Evil, evil");
else
{
var singleFile = files[0];
// ....
}
試試這個,它會給收藏的第一項。 如果集合計數為0,則它將返回null
。
Request.Form.Files.FirstOrDefault()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.