1

我有一个从填充列表视图的网络服务中获得的数据集。到目前为止,我一直在这样做:

foreach (DataRow row in dsGetAvailUsers.Tables[0].Rows) 
{
var item = new User();
item.sUserId = row ["sUserId"].ToString ();
item.UserDesc = row ["UserDesc"].ToString ();
item.UserIMG = row ["UserIMG"].ToString ();

listUsers.Add(item);
}

但是那个 vas 因为我知道每个字段的名称,因为它是一个具有固定数据和字段名称的列表。

但是现在我得到的列表曾经每个项目有 10 个字段,曾经有 12 个,等等。我将如何“动态地”迭代行,然后如何在我的自定义适配器中处理它们(未知的字段名称和字段计数)?

4

2 回答 2

1

做这个

foreach (DataRow row in dsGetAvailUsers.Tables[0].Rows) 
{
var item = new User();

 for (int j = 0; j < dsGetAvailUsers.Tables[0].Columns.Count; j++)
 {
   if(dsGetAvailUsers.Tables[0].Columns[j].ColumnName == "sUserId")
      item.sUserId = row ["sUserId"].ToString ();
   else if(dsGetAvailUsers.Tables[0].Columns[j].ColumnName == "UserDesc")
      item.UserDesc= row ["UserDesc"].ToString ();
   .....
 }


listUsers.Add(item);
}
于 2013-03-09T22:50:08.803 回答
1

解决这一切的代码......

foreach (DataRow row in dsGetAvailUsers.Tables[0].Rows)
{
    var item = new Dokument();
    int i = 0;
    item.Label = new Hashtable();
    item.array = new Hashtable();
    foreach (DataColumn _col in dsGetAvailUsers.Tables[0].Columns) 
    {
        item.Label.Add(i, _col.ColumnName);
        item.array.Add(_col.ColumnName,row[i].ToString());
        ++i;
    }
    listDokument.Add(item);
    RunOnUiThread (() => {DokumentAdapter.Add (item); });
}
于 2013-03-14T09:52:29.933 回答