如何在 foreach 循环外声明数据行?
How to declare datarow outside foreach loop?
我正在使用 foreach 循环并在该循环内声明了数据行
DataSet ds = Business.Site.GetSiteActiveModulesWithStatus(siteId);
foreach (DataRow dr in ds.Tables[0].Rows)
如何在 foreach 循环之外实现此数据行以及如何使用 for 循环而不是 foreach 循环?
循环 for:
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
//To acess the row
DataRow row = ds.Tables[0].Rows[i];
}
在 for 之外,要访问特定的数据行,您可以这样做:
//Change 0 to other numbers to acess other rows
DataRow row = ds.Tables[0].Rows[0];
要在循环外访问行变量,只需在循环外声明即可:
DataRow rowFound = null;
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
var currentRow = ds.Tables[0].Rows[i];
if(true /*To do: define some matching criteria*/)
{
rowFound = currentRow;
}
}
if(rowFound != null)
{
// We found some matching, what shall we do?
}
但您也可以用 LINQish 风格编写相同的代码:
var rowFound = ds.Tables[0].AsEnumerable()
.Where(row => true /*To do: define some matching criteria*/)
.FirstOrDefault();
此答案中的所有代码都未经测试。
我正在使用 foreach 循环并在该循环内声明了数据行
DataSet ds = Business.Site.GetSiteActiveModulesWithStatus(siteId);
foreach (DataRow dr in ds.Tables[0].Rows)
如何在 foreach 循环之外实现此数据行以及如何使用 for 循环而不是 foreach 循环?
循环 for:
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
//To acess the row
DataRow row = ds.Tables[0].Rows[i];
}
在 for 之外,要访问特定的数据行,您可以这样做:
//Change 0 to other numbers to acess other rows
DataRow row = ds.Tables[0].Rows[0];
要在循环外访问行变量,只需在循环外声明即可:
DataRow rowFound = null;
for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
var currentRow = ds.Tables[0].Rows[i];
if(true /*To do: define some matching criteria*/)
{
rowFound = currentRow;
}
}
if(rowFound != null)
{
// We found some matching, what shall we do?
}
但您也可以用 LINQish 风格编写相同的代码:
var rowFound = ds.Tables[0].AsEnumerable()
.Where(row => true /*To do: define some matching criteria*/)
.FirstOrDefault();
此答案中的所有代码都未经测试。