2014-07-16 63 views
6

我有folloiwng操作方法:如何創建一個空的SelectList

public JsonResult LoadSitesByCustomerName(string customername) 
{ 
    var customerlist = repository.GetSDOrg(customername) 
           .OrderBy(a => a.NAME) 
           .ToList(); 
    var CustomerData; 
    CustomerData = customerlist.Select(m => new SelectListItem() 
    { 
     Text = m.NAME, 
     Value = m.NAME.ToString(), 
    }); 
    return Json(CustomerData, JsonRequestBehavior.AllowGet); 
} 

,但目前我上var CustomerData;以下錯誤:

implicitly typed local variables must be initialized 

所以我不知道我怎麼可以創建一個清空SelectList將其分配給var變量? 感謝

回答

6

你可以試試這個:

IEnumerable<SelectListItem> customerList = new List<SelectListItem>(); 

你得到的錯誤是合理的,因爲

var關鍵字指示編譯器從表達式推斷變量的類型在初始化語句的右側。

在另一方面,你可以嘗試以下操作之一:

var customerList = customerlist.Select(m => new SelectListItem() 
        { 
         Text = m.NAME, 
         Value = m.NAME.ToString(), 
        }); 

之所以第二次轉讓將工作是,在這樣的編譯器可以推斷出變量的類型,因爲它知道LINQ查詢返回的類型。

+0

如何創建一個接口的實例? – Mardoxx

+0

@Mardoxx哎呀...我只是注意到它,我糾正它。 – Christos

2

初始化變量,當你把它聲明:

var CustomerData = customerlist.Select(m => new SelectListItem() 
{ 
    Text = m.NAME, 
    Value = m.NAME.ToString(), 
}); 
4

該錯誤意味着你不能沒有提供一個值聲明var變量,例如:

var double1 = 0.0; // Correct, compiler know what type double1 is. 
var double2; // Error, compiler not know what type double2 is. 

您需要分配一個值以var CustomerData;爲例:

var CustomerData = customerlist.Select(m => new SelectListItem() 
      { 
       Text = m.NAME, 
       Value = m.NAME.ToString(), 

      }); 
4

試試這個:默認

customerlist = new[] { new SelectListItem { } }; 
1

空列表項一個

var area = new[] { new tbl_Area { AreaID = -1, AreaName = "Please Select Main Area" } }; 

tbl_Area可以是一個類或數據模型

class tbl_Area{ 
     public int AreaID {get;set;} 
     public string AreaName {get;set;} 
} 
3

使用它來創建一個空的SelectList

new SelectList(Enumerable.Empty<SelectListItem>()) 

Enumerable.Empty<SelectListItem>()創建一個空序列,將傳遞給SelectList的構造函數。這是必要的,因爲SelectList沒有參數沒有構造函數重載。