如何在foreach循环外声明数据行

本文关键字:声明 数据 循环 foreach | 更新日期: 2023-09-27 18:20:22

我使用foreach循环,在该循环中我声明了数据行

DataSet ds = Business.Site.GetSiteActiveModulesWithStatus(siteId);               
foreach (DataRow dr in ds.Tables[0].Rows)

如何在foreach循环之外实现此数据行,以及如何使用for循环而不是foreach循环?

如何在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之外,要访问特定的DataRow,可以这样做:

//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?
}

但你也可以用林奇的风格写同样的东西:

var rowFound = ds.Tables[0].AsEnumerable()
                           .Where(row => true /*To do: define some matching criteria*/)
                           .FirstOrDefault();

此答案中的所有代码都未经测试