Я новичок в программировании, так что это может показаться несколько простеньким, но я не могу понять это.Найти повторяющиеся записи C#
Я пытаюсь найти повторяющиеся значения, которые находятся в datatable в одном столбце значений.
Вот что я пытался это сделать.
DataRow[] dupresults = dt.Select("PROV_NEW");
TableIssues = string.Empty;
DataTable dtTemp = dt.DefaultView.ToTable(true, "NEW_PROV");
if (dupresults.Length == 0)
{
return true;
}
else
{
foreach (DataRow item in dupresults)
{
Console.WriteLine(item[1]);
TableIssues += "Provider Code is not unique for " + item[1].ToString() + ". Revise non-unique codes.\r\n\n\n\n";
}
return false;
}
Хорошо, но я также иметь его поиск, чтобы убедиться, что там нет пустых полей в PROV_NEW тоже. поэтому я не знаю, где это сделать. Я очень новичок в C#. Я только начал на прошлой неделе. Я делаю побочные проекты для компании моего отца.
private bool ValidateTable(DataSets.Setup.SETUP_MWPROVDataTable dt, out string TableIssues)
{
try
{
//NewCode not used for other row
DataRow[] result = dt.Select("PROV_NEW = ''");
DataRow[] dupresults = dt.Select("PROV_NEW");
TableIssues = string.Empty;
DataTable dtTemp = dt.DefaultView.ToTable(true, "NEW_PROV");
if (dupresults.Length == 0)
{
return true;
}
else
{
var duplicates = dt.AsEnumerable()
.Select(dr => dr.Field<string>("PROV_NEW"))
.GroupBy(x => x)
.Where(g => g.Count() > 1)
.Select(g => g.Key)
.ToList();
foreach (DataRow item in dupresults)
{
Console.WriteLine(item[1]);
TableIssues += "Provider Code is not unique for " + item[1].ToString() + ". Revise non-unique codes.\r\n\n\n\n";
}
return false;
}
if (result.Length == 0)
{
//TODO: Add Next Step for validation
return true;
}
else
{
foreach (DataRow item in result)
{
Console.WriteLine(item[1]);
TableIssues += "Provider code " + item[1].ToString() + " is blank. Add new Provider code for " + item[1].ToString() +".\r\n\n\n";
}
return false;
}
}
catch (Exception)
{
throw;
}
}
}
Пожалуйста, не конкатенации строк в цикле. Используйте 'StringBuilder'. Возможно, это не важно для этого первого проекта, но это хорошая привычка. –
Что не работает? Вы получаете сообщение об ошибке? – FishBasketGordo
Я продолжаю получать сообщение об ошибке: «Выражение фильтра« PROV_NEW »не оценивается с помощью булевого термина». Поэтому я не знаю, что там происходит – Kobrien