2014-04-01 38 views
0

我有一個方法可以對列表進行排序< T>它獲取一個bool參數,它指示是按ascending還是由descending排序。初始化var by if - else

我想用var作爲返回類型。

protected void SortlistBy(bool IsByDescending) 
    { 
     var result; 
     // Initialize the var according to parameter value 
     if (IsByDescending == false) 
      result = listModelElements.OrderBy(x => sort(x)).ToList(); 
     else 
      result = listModelElements.OrderByDescending(x => sort(x)).ToList(); 
    } 

我收到以下錯誤:Implicitly-typed local variables must be initialized
任何想法?

+0

不能做到這一點!閱讀[var(C#參考)](http://msdn.microsoft.com/en-us/library/bb383973.aspx)。你在做'結果'嗎?我只能看到作業! –

回答

1

您可以使用一個三元操作符,如:

var result = IsByDescending ? 
       listModelElements.OrderByDescending(x => sort(x)).ToList() : 
       listModelElements.OrderBy(x => sort(x)).ToList(); 
1

這是不可能的。你必須聲明一個類型。

var而不是關鍵字爲後期綁定。

1

你根本不能 - 必須明確聲明一個變量的類型,或者在聲明點可以推出。而且,由於變量沒有被賦值,編譯器無法推斷它的類型。

只需聲明resultIEnumerable<T>IList<T>