2013-03-25 74 views
0

我有這樣如何將一個額外的價值添加到查詢在C#

var values = ProjectContext.controloptions.Where(i => i.id == id).Select(i => new { 

      i.value 
     }).ToList(); 

查詢現值包含4個記錄我想添加2條記錄,如

values.Insert(0, new { "Select" }); 
    values.Add("AddNew"); 

但顯示錯誤。其中i.value是數據庫中的varchar字段。

如何將兩條記錄添加到沒有額外字段的列表中。

+2

什麼是錯誤您收到? – Default 2013-03-25 07:30:39

+0

無效的匿名類型成員聲明。他們必須聲明與成員分配,簡單名稱或成員訪問 – Pa1 2013-03-25 07:36:28

回答

1

您正在選擇匿名類型。您只能通過匹配屬性的名稱和類型添加此類型的另一個對象,這樣的:

var values = new[]{ new Options{value = 666, id = 5}} //array to demo purposes 
       .Where(i => i.id == 5) 
       .Select(i => new { 
           value = i.value.ToString() 
       }) 
       .ToList(); 

values.Add(new {value = "Select"}); 
values.Insert(0, new {value = "AddNew"}); 

現在values包含匿名類型(string類型的一個屬性value)三個對象,並可以打印成

AddNew 
666 
Select 

考慮創建新的自定義類,然後在Select投影使用它,就像這樣:

class MyCustomClass 
{ 
    public string Value { get; set; } 
} 

然後創建Select

List<MyCustomClass> values = new[]{ new Options{value = 666, id = 5}} 
       .Where(i => i.id == 5) 
       .Select(i => new MyCustomClass { 
           Value = i.value.ToString() 
        }) 
       .ToList(); 

values.Add(new MyCustomClass { Value = "Select"});    
values.Insert(0, new MyCustomClass { Value = "AddNew"}); 

此對象現在您的清單被命名爲類型List<MyCustomClass>和元素可以添加和刪除到名爲類

+0

我不想使用自定義變量,如值或任何其他。我們不能直接給列表添加一個值。 – Pa1 2013-03-25 07:41:09

+1

是的,正如我在第一個例子中展示的那樣 - 'values.Add(new {value =「Select」});'通過*自定義變量*您可能意味着自定義類型 – 2013-03-25 07:41:48

相關問題