C# 将DataTable转换为通用列表
我在dataService层中有以下方法:C# 将DataTable转换为通用列表,c#,list,datatable,generic-list,C#,List,Datatable,Generic List,我在dataService层中有以下方法: public DataTable retTable () { DataTable dt = new DataTable(); adap.Fill(dt); return dt; } 因为我应该在业务层中添加使用数据名称空间。我想把它改成: public List<DataTable&g
public DataTable retTable ()
{
DataTable dt = new DataTable();
adap.Fill(dt);
return dt;
}
因为我应该在业务层中添加使用数据名称空间。我想把它改成:
public List<DataTable> retTable()
{
DataTable dt = new DataTable();
adap.Fill(dt);
List<DataTable> lst = new List<DataTable>();
lst.AddRange(dt);
return lst ;
}
我怎样才能解决它呢?这样就可以解决问题了
lst.Add(dt);
通过AddRangedt,您可以添加数据表的集合
然而,数据集本身是数据表的集合。那为什么要用列表来重新发明轮子呢。只需像这样返回数据集
即使你仍然想返回列表,你也可以这样做
public List<DataTable> retTable()
{
DataSet dt = new DataSet();
adap.Fill(ds);
List<DataTable> lst = new List<DataTable>();
lst.AddRange(ds.Tables.AsEnumerable());
return lst;
}
这将解决问题
lst.Add(dt);
通过AddRangedt,您可以添加数据表的集合
然而,数据集本身是数据表的集合。那为什么要用列表来重新发明轮子呢。只需像这样返回数据集
即使你仍然想返回列表,你也可以这样做
public List<DataTable> retTable()
{
DataSet dt = new DataSet();
adap.Fill(ds);
List<DataTable> lst = new List<DataTable>();
lst.AddRange(ds.Tables.AsEnumerable());
return lst;
}
试试下面
public List<DataRow> retTable()
{
DataTable dt = new DataTable();
adap.Fill(dt);
return dt.AsEnumerable().ToList();
}
然后从我们的方法返回此列表请尝试下面的方法
public List<DataRow> retTable()
{
DataTable dt = new DataTable();
adap.Fill(dt);
return dt.AsEnumerable().ToList();
}
然后从我们的方法返回这个列表,因为表是2D矩阵,所以我们应该返回2D列表:
public List<List<string >> retListTable()
{
DataTable dt = new DataTable();
adap.Fill(dt);
List<List<string>> lstTable = new List<List<string>>();
foreach (DataRow row in dt.Rows)
{
List<string> lstRow = new List<string>();
foreach (var item in row.ItemArray )
{
lstRow.Add(item.ToString().Replace("\r\n", string.Empty));
}
lstTable.Add(lstRow );
}
return lstTable ;
}
因为表是2D矩阵,所以我们应该返回2D列表:
public List<List<string >> retListTable()
{
DataTable dt = new DataTable();
adap.Fill(dt);
List<List<string>> lstTable = new List<List<string>>();
foreach (DataRow row in dt.Rows)
{
List<string> lstRow = new List<string>();
foreach (var item in row.ItemArray )
{
lstRow.Add(item.ToString().Replace("\r\n", string.Empty));
}
lstTable.Add(lstRow );
}
return lstTable ;
}
如果要添加单个DataTable对象,请使用List.add是否确实要创建DataTable的列表?或者你想从数据表中提取行列表?@Steve-hmm,我认为行列表更好!因为我想要2D矩阵。现在我该怎么办呢?最好的方法是投入一些时间来实现ORM工具。您可以轻松地使用简单、快速和真正的救命稻草,也可以选择更复杂的救命稻草,但如果具有更多功能(如添加单个DataTable对象),请使用List.add是否确实要创建DataTable列表?或者你想从数据表中提取行列表?@Steve-hmm,我认为行列表更好!因为我想要2D矩阵。现在我该怎么办呢?最好的方法是投入一些时间来实现ORM工具。您可以轻松地使用简单、快速和真正的救星,也可以选择更复杂的方法,但具有更多功能,例如,因为此方法是公共的,列数和类名未知。不幸的是,我不知道通用列表中的lambda代码。你能给我确切的代码吗?因为这个方法是公共的,列数和类名是未知的。不幸的是,我不知道通用列表中的lambda代码。你能给我确切的密码吗?