#c# #arrays #methods
#c# #массивы #методы
Вопрос:
у меня возникли проблемы с поиском в массиве «имя торгового представителя», а затем с удалением имени, продажи и комиссии.
static void RemoveSale(string[] sellerNames, double[] sellerSales, double[] sellerCommision, ref int sellerCount)
{
int index;
string salesRep;
try
{
if (sellerCount > 0)
{
salesRep = GetValidName("Enter the sales rep to delete");
index = SearchSeller(sellerNames, sellerCount);
if (index == -1)
{
Console.WriteLine("that sales rep is not on the team");
}
else
{
sellerSales[index] = sellerSales[sellerCount - 1];
sellerNames[index] = sellerNames[sellerCount - 1];
sellerCommision[index] = sellerCommision[sellerCount - 1];
Console.WriteLine("Sales rep {0} has been deleted.", sellerNames);
sellerCount--;
}
}
else
{
Console.WriteLine("there are no sales reps to delete");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
static int SearchSeller(string[] sellerNames, int sellerCount)
{
try
{
int index = 0;
bool found = false;
while (!found amp;amp; index < sellerCount)
{
if (sellerNames[sellerCount] == sellerNames[index])
found = true;
else
index ;
}
if (!found)
index = -1;
return index;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
return 0;
}
}
ожидаемый результат — удалить name, data и подтвердить, что sellerName{0} был удален.
фактический результат — ничего не удалено, и нет подтверждения удаленного продавца
Ответ №1:
Вы не передаете свой salesRep
объект функции поиска. Предполагая, что вы можете изменить сигнатуру функции поиска, попробуйте это:
// Pass the name of the sales rep
static int SearchSeller(string[] sellerNames, int sellerCount, string salesRep)
{
try
{
int index = 0;
bool found = false;
while (!found amp;amp; index < sellerCount)
{
// compare the current name in array with the passed name
if (salesRep == sellerNames[index])
found = true;
else
index ;
}
if (!found)
index = -1;
return index;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
return 0;
}
Отладка обычно должна быть первым шагом для проверки на более простых ошибках.
Лучшим вариантом поиска было бы использовать функцию c # Find
Array.Find(sellerNames, salesRep);
Комментарии:
1. это было именно так! Спасибо. Я дошел до последних нескольких проверок на ошибки перед назначением. вы спасли свою жизнь!! К сожалению, учитель не разрешает нам использовать find, sort или list