创建格式化列表时的类对象的替代

时间:2018-10-24 12:18:47

标签: c# .net list datatable

我有一个要以特定格式添加到$('.deck').html(cards.map(x=>'<li><i class="'+x+'"></i></li>')) 的数据表。现在,按照我的要求,我不想从类中创建通用列表,同时保留我的数据格式,但不能这样做。下面是我的代码

List

是否可以从上面的代码中删除类 List<Data> datalist = new List<Data>(); for (int i = 0; i < dt.Rows.Count; i++) { Data dd1 = new Data(); dd1.ID = Convert.ToString(dt.Rows[i]["ID"]); dd1.STATUS = Convert.ToString(dt.Rows[i]["Name"]); dd1.TYPE = Convert.ToString(dt.Rows[i]["TYPE"]); datalist.Add(dd1); } 的依存关系,并保持格式相同?

2 个答案:

答案 0 :(得分:0)

您可以在其位置使用词典。不再有Data类依赖,而是相同的基本数据和格式!

var datalist = new List<IDictionary<string, string>>();
for (var i = 0; i < dt.Rows.Count; ++i)
{
    var data = new Dictionary<string, string>()
    {
        { "ID", Convert.ToString(dt.Rows[i]["ID"]) },
        { "STATUS", Convert.ToString(dt.Rows[i]["Name"]) },
        { "TYPE", Convert.ToString(dt.Rows[i]["TYPE"]) }
    };
    datalist.Add(data);
}

然后,您只需访问值datalist[i]["ID"]而不是datalist[i].ID

答案 1 :(得分:0)

您可以像下面那样在linq上使用dt查询,并将结果投影到anonymous type中。

var datalist = (from r in dt.AsEnumerable()
                select new
                {
                    ID = r.Field<string>("ID"),
                    Name = r.Field<string>("Name"),
                    TYPE = r.Field<string>("TYPE"),
                }).ToList();

如果您想从name中获得Id的{​​{1}},那么

datalist