У меня есть 109,728 значений в моем CSV [381 значений в одной строке & всего 288 строк] Я нахожу минимальное и максимальное значение в своем CSV и на основе его создания диапазонов. Затем сравнивает каждое значение и диапазон поиска, в котором находится значение.Найти диапазон значений Значения Lies
Для примера
- Минимальное значение - 30
- Максимальное значение - 31
- Нет диапазона - 3
- диапазоны
[30 - 31,31 - 32,32 - 33]
Если первое значение 30.5
то это будет лежать в первом диапазоне, поэтому значение счета этого диапазона будет увеличено на 1
. У меня есть цикл возврата для него, полный процесс занимает 7 секунд, что слишком медленно в соответствии с моим требованием.
Пожалуйста, помогите мне, как я могу уменьшить это время. Я хочу завершить весь процесс в течение 1 секунды.
Ниже мой код:
var reader = new StreamReader(File.Open("C:\\Users\\Admin\\Documents\\Imager Data" + "\\" + oldest.Name, FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values1 = line.Split(';');
for (int i = 0; i < 381; i++)
{
for (int j = 0; j < Convert.ToInt32(textBox5.Text); j++)
{
if (lowerlimit[j] <= double.Parse(values1[i]) && double.Parse(values1[i]) <= upperlimit[j])
{
textboxArray[j].Text = (Convert.ToInt32(textboxArray[j].Text) + 1).ToString();
break;
}
}
}
}
reader.ReadToEnd();
reader.Dispose();
Вместо преобразования значения в текстовых полях на 'int' и приращением ее, а затем преобразовывать обратно в строку, чтобы положить обратно в текстовые поля, просто отслеживать все значения в' междунар [ ] 'и обновить текстовые поля в конце. – juharr