0

List<dataset>aから to までの値を読み込もうとしています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 のリストを返すメソッドはありそうにないようです。その部分は正しいですか?おそらく、複数のテーブルを含む 1 つの 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 に答える