将属性名称设置为List c#

时间:2016-02-02 18:06:03

标签: c# list properties

如何为我的List的每个值设置属性名称?

这是我的名单和我的" 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);       
}

我如何为每个值赋予它一个属性名称,如:Property Description = list.Add(item.Description)

3 个答案:

答案 0 :(得分: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 :(得分:1)

如果您澄清了要将数据序列化为JSON,请考虑使用匿名类型:

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

注意:我不清楚变量“total”的定义...

这应该很好地序列化为一组对象。

答案 2 :(得分: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; }
    }