在下面的Foreach循环中
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
var val=row[col].ToString()
var index=??
}
}
如何检查当前列是否为最后一列?
答案 0 :(得分:1)
你也可以这样做:
foreach (DataRow row in dt.Rows)
{
for(int i=0; i< dt.Columns.Count; i++)
{
var val=row[i].ToString()
// here i will be the index
// dt.Columns[i] will be the column
}
}
如果你的要求是对最后一栏做一些事情[如问题所述]意味着不需要继续进行迭代,你可以使用这样的列索引:row[dt.Columns.Count-1]
答案 1 :(得分:1)
如果我理解你的话,你要找的东西是序数
Declare @year int = 2017, @month int = 11;
WITH numbers
as
(
Select 1 as value
UNion ALL
Select value + 1 from numbers
where value + 1 <= Day(EOMONTH(datefromparts(@year,@month,1)))
)
SELECT datefromparts(@year,@month,numbers.value) Datum FROM numbers
它为您提供列项目的当前位置
检查此MSDN Link
答案 2 :(得分:0)
public static void DataD() {
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
// Here we add five DataRows.
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
int count = table.Columns.Count;
var lastColumn = table.Columns[count - 1];
string columnname = lastColumn.ColumnName;
foreach (DataRow row in table.Rows)
{
foreach (DataColumn col in table.Columns)
{
var val = row[col].ToString();
var index = table.Columns.IndexOf(col);
if (columnname == col.ColumnName) {
// this is my last colums
}
}
}
}
答案 3 :(得分:0)
这应该可以帮到你
var index,val;
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
index=dt.Columns.IndexOf(col);
val=row[index].ToString();
if (index == dt.Columns.Count-1)
//your code here...
}
}
答案 4 :(得分:-1)
试试这个。
foreach (DataRow row in dt.Rows)
{
var index =0;
foreach (DataColumn col in dt.Columns)
{
var val=row[col].ToString()
index++;
if(index == dt.Columns.Count)
//true
}
}
答案 5 :(得分:-1)
使用以下代码安静
int total=dt.Columns.Count;
int i=0;
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
if(i==total-1)
{
}
i++;
var val=row[col].ToString()
var index=??
}
}