簡體   English   中英

檢查 viewbag 列表是 null 還是空

[英]checking if a viewbag list is null or empty

我無法檢查我的列表長度是否為 0。如果我刪除 or 的第二部分,則代碼有效。 僅檢查列表是否為 null。

@{
    @if( ViewBag.somelist != null || Enumerable.Count(ViewBag.somelist) == 0)
    {
        <p>list not null or empty</p>
    }
    @else
    {
        <p>list is empty</p>
    }
}

我試過的:

  • Enumerable.Count(ViewBag.somelist) <1
  • ViewBag.somelist.Count() == 0
var somelist=Viewbag.somelist.Count;
@if( ViewBag.bbM9and10 != null || somelist == 0){}

還有用於檢查列表是否為空的可互換項: >=0、<=0、<1、>=1

你應該可以在這里使用Any() ,替換你的|| 對於評論中提到的&& ,因為您正在檢查列表是否不是 null並且不為空:

@{
    @if(ViewBag.somelist != null && ViewBag.somelist.Any())
    {
        <p>list not null or empty</p>
    }
    @else
    {
        <p>list is empty</p>
    }
}

您可以放心地調用它,因為如果somelist是 null,則執行將永遠不會達到該點。

您的代碼有問題|| 操作員。 對於|| 運算符當第一條語句為真或假時,第二條語句將始終被執行。 在你的情況下,如果ViewBag.somelist是 null,第二條語句也將被執行,然后它會拋出ArgumentNullException 為了克服這種情況,使用&&代替|| . 它將充當短路,當第一個語句為真時,只有第二個語句才會被執行,否則它的執行將移至下一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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