C# 使用数据集行

C# 使用数据集行,c#,dataset,xamarin.android,rows,loops,C#,Dataset,Xamarin.android,Rows,Loops,我有一个数据集,它是从一个Web服务获得的,我用它填充一个listview。到目前为止,我一直在这样做: 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 ["User

我有一个数据集,它是从一个Web服务获得的,我用它填充一个listview。到目前为止,我一直在这样做:

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个字段,以此类推。 如何“动态”遍历行,然后如何在自定义适配器中处理它们(未知字段名和字段计数)?

这样做

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);
}
foreach(dsGetAvailUsers.Tables[0].Rows中的数据行)
{
var item=新用户();
对于(int j=0;j
解决所有问题的代码

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); });
}

也许我这里遗漏了什么,但是你不能指定列索引吗?你能澄清你的问题吗?你想干什么?显示所有数据还是只显示其中的一部分?我想要匿名探测数据集。我回答了下面的问题:)