#c# #foreach
#c# #foreach
Вопрос:
Как мне выполнить цикл по каждому столбцу в foreach
потоке данных с помощью?
DataTable dtTable = new DataTable();
MySQLProcessor.DTTable(mysqlCommand, out dtTable);
foreach (DataRow dtRow in dtTable.Rows)
{
//foreach(DataColumn dc in dtRow)
}
Ответ №1:
Это должно сработать:
DataTable dtTable;
MySQLProcessor.DTTable(mysqlCommand, out dtTable);
// On all tables' rows
foreach (DataRow dtRow in dtTable.Rows)
{
// On all tables' columns
foreach(DataColumn dc in dtTable.Columns)
{
var field1 = dtRow[dc].ToString();
}
}
Ответ №2:
Я считаю, что это то, что вы хотите:
DataTable dtTable = new DataTable();
foreach (DataRow dtRow in dtTable.Rows)
{
foreach (DataColumn dc in dtRow.ItemArray)
{
}
}
Комментарии:
1. itemArray — это то, что я искал. Не получил его через intellisense.
2. Обратите внимание, что itemArray имеет тип Object[] , поэтому dc должен быть типизированным Object, а не DataColumn .
Ответ №3:
Вы можете сделать это следующим образом:
DataTable dt = new DataTable("MyTable");
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
if (row[column] != null) // This will check the null values also (if you want to check).
{
// Do whatever you want.
}
}
}
Ответ №4:
Вы можете это проверить. Используйте цикл foreach для столбца данных, предоставленного вместе с вашей таблицей данных.
foreach(DataColumn column in dtTable.Columns)
{
// do here whatever you want to...
}
Ответ №5:
Что-то вроде этого:
DataTable dt = new DataTable();
// For each row, print the values of each column.
foreach(DataRow row in dt .Rows)
{
foreach(DataColumn column in dt .Columns)
{
Console.WriteLine(row[column]);
}
}
http://msdn.microsoft.com/en-us/library/system.data.datatable.rows.aspx
Комментарии:
1. значит, вы останетесь внутри этой конкретной строки, это та часть, которая заставила меня задуматься об этом?
2. да, вы получаете строку => столбцы принадлежат datatable, так что вы можете получить значение каждого столбца в строке.
Ответ №6:
В LINQ вы могли бы сделать что-то вроде:
foreach (var data in from DataRow row in dataTable.Rows
from DataColumn col in dataTable.Columns
where
row[col] != null
select row[col])
{
// do something with data
}
Ответ №7:
int countRow = dt.Rows.Count;
int countCol = dt.Columns.Count;
for (int iCol = 0; iCol < countCol; iCol )
{
DataColumn col = dt.Columns[iCol];
for (int iRow = 0; iRow < countRow; iRow )
{
object cell = dt.Rows[iRow].ItemArray[iCol];
}
}