0

我正在尝试将值从 a 加载List<dataset>List<Person>

我已经编写了以下代码,但不确定下一步该做什么

public List<Person> AddressFinderBLL_GetAddressbyName(String pfname,)
{ 
    List<Person> Per= new List<Person>();
    List<DataSet> lstPer = new List<DataSet>(); 
    lstPer = Adal.AddressFinderDAL_GenerateDatabyName(
      pfname, pfnameval, plname, plnameval);
      //here List<Dataset> lstPer loaded with values from back end foreach(DataRow item in lstPer[0].Tables[0].Rows)
{
    // here i need to assign the values to List<Person> from List<Dataset>[0].tables[0].rows; 
}                           

Person 类具有以下属性 class class Person {

    public String _firstname,_middlename;

    public Person()
    {
    }
    public String Firstname
    {
        get
        {
            return _firstname;
        }
        set
        {
            _firstname = value;
        }

    }

    public String Middlename
    {
        get 
        {
            return _middlename;
        }
        set
        {
            _middlename = value;
        }
    }

} 请告诉我

4

3 回答 3

2

我不知道您的 DataSet 有哪些列名,但这是一个近似值:

List<Person> pers = lstPer[0].Tables[0].AsEnumerable().
                    Select(r=> new Person() { 
                        FirstName = r.Field<string>("fieldname1"),
                        MiddleName = r.Field<string>("fieldname2")
                    })
                    .ToList();

顺便说一句,返回数据集列表的方法似乎不太可能。你确定那部分是对的吗?也许它返回一个包含多个表的 DataSet?

于 2012-09-25T16:47:17.517 回答
1

也许(我不知道你表的列):

Per = (from ds in lstPer
      from row in ds.Tables[0].AsEnumerable()
      select new Person(){
          FirstName = row.Field<String>("FirstName"),
          MiddleName = row.Field<String>("MiddleName")
      }).ToList();

请注意,您需要添加,using system.Linq因为上面是一个 linq-query(Linq-To-DataSet)。

于 2012-09-25T16:46:38.617 回答
0

全部来自记忆,所以 YMMV 但我希望它是

public List<Person> AddressFinderBLL_GetAddressbyName(String pfname,)
{
   List<Person> Per= new List<Person>();
   List<DataSet> lstPer = new List<DataSet>();
   lstPer = Adal.AddressFinderDAL_GenerateDatabyName(pfname, pfnameval, plname, plnameval);
   //here List<Dataset> lstPer loaded with values from back end 
foreach(DataRow item in lstPer[0].Tables[0].Rows)
       {
              // here i need to assign the values to List<Person> from List<Dataset>[0].tables[0].rows; 
          var p = new Person();
//it isn't clear what structure item will have. let's assume that it has 2 columns. one is         //firstname and the other is last name 
          p.FirstName = item[0];
          p.Middlename = item[1];
          Per.Add(p);
       } 

但是根据其他答案,您将从围绕 LINQ 的一些阅读中获得更多信息!

于 2012-09-25T16:48:55.897 回答