Вы можете изменить метод AreAllColumnsEmpty
, чтобы он стал повторно используемым, например:
static bool AreAllColumnsEmpty(DataRow dr, out Dictionary<string, string> nameValuePair)
{
// contains non-empty columns name and value
nameValuePair = new Dictionary<string, string>();
if (dr == null)
{
return true;
}
else
{
DataColumnCollection columns = dr.Table.Columns;
int columnIndex = 0;
foreach (var value in dr.ItemArray)
{
string valueToString = value.ToString().Trim();
if (!string.IsNullOrEmpty(valueToString))
{
nameValuePair.Add(columns[columnIndex].ColumnName, valueToString);
}
columnIndex++;
}
return nameValuePair.Count == 0;
}
}
AreAllColumnsEmpty
метод циклически проходит по каждому столбцу (ячейке, полю) строки. Непустые столбцы хранятся в Dictionary<string, string> nameValuePair
как пары имя-значение. Метод AreAllColumnsEmpty
возвращает значение bool
, которое указывает, является ли строка пустой, и имеет ли выходной параметр Dictionary<string, string> nameValuePair
.
AreAllColumnsEmpty
метод is stati c, но это не обязательно. Dictionary<string, string> nameValuePair
будет сбрасываться при каждом выполнении метода AreAllColumnsEmpty
.
Строка
if (value.ToString().Trim() != null && value.ToString().Trim() != "")
заменяется на
string valueToString = value.ToString().Trim();
if (!string.IsNullOrEmpty(valueToString))