从查询中填充List <class>,List的结果是类</class>的地址

时间:2014-11-28 22:59:55

标签: c# linq collections

我有一个我制作的课程,我想将它用于列表但是当我尝试向其中添加数据并循环遍历列表时,我得到的就是该类的地址。我不知道为什么它将其作为值添加。

我的班级

public class Regions
{
    public int dataID { get; set; }
    public int documentID { get; set; }
    public string region_ID { get; set; }
    public string region_Name { get; set; }
    public string sortID { get; set; }
}

这就是我尝试添加值的方式。查询中包含正确的数据,但列表无法获取数据,只是该类所在的位置。

List<Regions> lst = new List<Regions>();

var q = dt.AsEnumerable()
.Select(region => new {
    dataID = region.Field<int>("dataID"),
    documentID = region.Field<int>("documentID"),
    region_ID = region.Field<string>("Region_ID"),
    region_Name = region.Field<string>("Region_Name"),
    sortID = region.Field<string>("SortID").ToString()
});

foreach (var d in q)
lst.Add(new Regions() { dataID = d.dataID, 
    documentID = d.documentID, 
    region_ID = d.region_ID, 
    region_Name = d.region_Name, 
    sortID = d.sortID 
});

Query Results

List Data

修改 这是一个链接,我发现它与我想要做的类似,但它似乎没有像我一样的错误。我尝试了这个答案,但对我来说并不适合。 Storing data into list with class

固定 当我在列表中循环时,我没有正确阅读它。

2 个答案:

答案 0 :(得分:1)

尝试在Regions

中添加此内容
public override string ToString()
{
    return region_Name;
}

答案 1 :(得分:1)

实际上你可以一步创建列表

List<Regions> lst = dt.Rows.OfType<DataRow>().Select(region => new Regions{
  dataID = region.Field<int>("dataID"),
  documentID = region.Field<int>("documentID"),
  region_ID = region.Field<string>("Region_ID"),
  region_Name = region.Field<string>("Region_Name"),
  sortID = region.Field<string>("SortID")
}).ToList();