簡體   English   中英

foreach循環遍歷數組c#中的第一項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM