2013-10-18 12 views
0

我有代碼從數據庫中獲取id列表。該代碼是使用LINQ低於如何使用LINQ選擇更大的ID到SQL

var resutls = (from v in con.NewsLatter 
       where v.SendStatus == "Active" 
       select new { v.Id }).ToList; 

它從表名爲NewsLater的數據庫返回一個所有ID。現在,我想要做的就是填補這一切ID在

List<Int32> IdList = new List<Int32>{ //list of id want to fill here in List<Int32> }; 

var min = IdList .Where(x=>x>12).Min(); 

return min; 

當我試圖填補這一這樣下面

List<Int32> IdList = new List<Int32> { Convert.ToInt32(resutls) }; 

var min = IdList .Where(x => x > 12).Min(); 

return min; 

我有一個例外:

Unable to cast object of type 
'System.Collections.Generic.List`1[<>f__AnonymousType0`1[System.Int32]]' to type 
'System.IConvertible'. 

任何人有什麼想法這裏有什麼問題嗎?

回答

0

嘗試使用AddRange method

List<Int32> IdList = new List<Int32>() 

IdList.AddRange(resutls) 

假設resutlsList<Int32>本身雖然,這是看起來就像是從您的代碼。

編輯:

更改您的查詢:

var resutls = (from v in con.NewsLatter 
       where v.SendStatus == "Active" 
       select v.Id).ToList(); 

你只需要選擇v.Id,你並不需要創建一個新的對象new { v.Id }

+0

GOT 2錯誤其下面: 錯誤\t \t 1爲「System.Collections.Generic.List .AddRange最好重載的方法匹配(System.Collections.Generic.IEnumerable )'有一些無效參數 和 錯誤參數1:無法從'System.Collections.Generic.List '轉換爲'System.Collections.Generic.IEnumerable ' –

+0

它將拋出錯誤1無法將方法組分配給隱式類型的局部變量 –

+0

我改變了我的代碼,因爲我錯過了ToList()旁邊的括號。請再次嘗試我的代碼。它會工作,我剛剛在我的PC上的一個控制檯應用程序中嘗試了它。 –

0

嘗試一下,首先在int變量中聲明轉換後的值,然後給出值。

編輯

  foreach (var result in resutls) 
     { 
      int convertedResult = Convert.ToInt32(result); 

      List<Int32> IdList = new List<Int32> { convertedResult }; 
      IdList.Add(convertedResult); 
     } 
+0

Hello Ramesh它會拋出相同的錯誤。 –

+0

現在我編輯我的代碼,嘗試這種方式 –