2016-02-02 70 views
0

如何將屬性名稱設置爲我的列表的每個值?爲列表c中的每個項目設置屬性名稱#

這是我的名單,我的「的foreach」它

List<object> list = new List<object>(); 

foreach (var item in db.Pos) 
{ 
    list.Add(item.Description); 
    list.Add(item.Pdv); 
    list.Add(item.Rid); 
    list.Add(total);  
} 

我怎麼可以給它一個屬性名稱每個值,如:房產Description = list.Add(item.Description)

+1

你爲什麼要做到這一點考慮增加的原因。否則,可能需要一些帶表達式的「創意」解決方案(或者更復雜),因爲值沒有與它們相關聯的源。 –

+0

也許您需要使用字典集合而不是List? – Maybe

+0

Arturo Martinez,你爲什麼認爲VBA標籤(listobject)對於這個C#問題如此重要,所以你決定把它添加回來? –

回答

2

鑑於您db.Pos有對象的集合也許詞典列表可以幫助你,樣品:

var list = new List<Dictionary<string, object>>(); 

foreach (var item in db.Pos) 
{ 
    var dic = new Dictionary<string, object>(); 
    dic.Add("Description", item.Descripcion); 
    dic.Add("Pdv", item.Pdv); 
    dic.Add("Rid", item.Rid); 
    dic.Add("Total", total);  

    list.Add(dic); 
} 

然後你就可以嘗試讀取屬性:

var description = list[0]["Description"]; 
1

鑑於你澄清,你想你的數據序列化到JSON,考慮使用匿名類型:

var items = db.Pos.Select(item => new 
{ 
    Description = item.Description, 
    Pvd = item.Pvd, 
    Rid = item.Rid, 
    Total = total 
}); 

注:這我不清楚變量「總」被定義,其中...

這應該很好地序列化爲您的對象數組。

+0

我減少了foreach循環,使它更容易理解,但我需要我的列表具有屬性他們自己的,因爲我的列表將比我的Json有更多的列,這就是爲什麼我想添加屬性列表中的每個項目,然後序列化它 –

+0

因此,那麼它不是很明顯,你的目標是什麼。如果你以某種方式修改了你的代碼以試圖「簡化」你的問題,那麼你就更難以理解你的任務了。您發佈的代碼將生成一系列所有堆疊在一起的項目的狹窄陣列。這是你想要的嗎? –

0

我不確定對象的類是什麼,但我寫了一個類似的例子,你只需要將學生類的名字替換爲你的類名即可。

List<student> students = new List<student>(); 

    foreach (var each in db.students) 
    { 
     students.Add(new student 
     { 
      id = each.id, 
      name = each.name, 
      address = each.address 
     }); 
    } 

假設你有下面的類

public class student 
    { 
     public int id { get; set; } 
     public string name { get; set; } 
     public string address { get; set; } 
    } 
相關問題