Почему из моего списка извлекаются неверные данные?C#

Место общения программистов C#
Ответить
Anonymous
 Почему из моего списка извлекаются неверные данные?

Сообщение Anonymous »

У меня простая форма. Я работаю с шестью отдельными диапазонами чисел, например 0–1,57, 1,57–6,35, 6,35–12,7 и т. д.
В зависимости от выбранного класса A, B, C, и т. д. он возвращает разные допуски для каждого диапазона. Допуски находятся в отдельных списках для каждого класса.
Это работает так: «если (выбрано это и это), используйте этот список, иначе, если (выбрано это и это) ), используйте другой список.
Мой первый диапазон работает так, как должен, точно извлекая числа из списка. Пять диапазонов для второго класса работают так, как должны, но последний. диапазон в классе не возвращает правильный допуск. Он продолжает захватывать допуск для. место под номером 4, тогда как оно должно захватывать его с места под номером 5.
В этом нет ничего особенного, и я уверен, что вы найдете гораздо лучший способ сделать это, но Я просто пытаюсь научиться разным вещам.
Последние одиннадцать строк, выделенных жирным шрифтом, — это строки, которые не возвращают правильный результат. Он продолжает возвращать результаты из [4] в списках ClassB. вместо номера [5], однако списки класса A работают хорошо.
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private List ClassAPlus = new List { 0.080, 0.130, 0.150, 0.200, 0.250, 0.250 };
private List ClassAMinus = new List { 0.030, 0.050, 0.080, 0.100, 0.100, 0.130 };

private List ClassBPlus = new List { 0.080, 0.250, 0.300, 0.400, 0.500, 0.500 };
private List ClassBMinus = new List { 0.030, 0.100, 0.100, 0.150, 0.150, 0.250 };
private void btnEnter_Click(object sender, EventArgs e)
{
double Diameter, Plus, Minus, Nominal, Tolerance;
if (double.TryParse(txtSize.Text, out Diameter)) ;

if (rbA.Checked == true && rbMetric.Checked == true)
if (Diameter 1.57 || Diameter == 6.35)
{
Plus = (Diameter + ClassAPlus[1]);
Minus = (Diameter - ClassAMinus[1]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassAPlus[1].ToString("0.000") + " /- " + ClassAMinus[1].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
if (Diameter > 6.35 || Diameter == 12.7)
{
Plus = (Diameter + ClassAPlus[2]);
Minus = (Diameter - ClassAMinus[2]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassAPlus[2].ToString("0.000") + " /- " + ClassAMinus[2].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
if (Diameter > 12.7 || Diameter == 19.05)
{
Plus = (Diameter + ClassAPlus[3]);
Minus = (Diameter - ClassAMinus[3]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassAPlus[3].ToString("0.000") + " /- " + ClassAMinus[3].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
if (Diameter > 19.05 || Diameter == 25.4)
{
Plus = (Diameter + ClassAPlus[4]);
Minus = (Diameter - ClassAMinus[4]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassAPlus[4].ToString("0.000") + " /- " + ClassAMinus[4].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
if (Diameter > 25.4)
{
Plus = (Diameter + ClassAPlus[5]);
Minus = (Diameter - ClassAMinus[5]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassAPlus[5].ToString("0.000") + " /- " + ClassAMinus[5].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
else
{
if (rbB.Checked == true && rbMetric.Checked == true)
{
if (Diameter 1.57 || Diameter == 6.35)
{
Plus = (Diameter + ClassBPlus[1]);
Minus = (Diameter - ClassBMinus[1]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassBPlus[1].ToString("0.000") + " /- " + ClassBMinus[1].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
if (Diameter > 6.35 || Diameter == 12.7)
{
Plus = (Diameter + ClassBPlus[2]);
Minus = (Diameter - ClassBMinus[2]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassBPlus[2].ToString("0.000") + " /- " + ClassBMinus[2].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
if (Diameter > 12.7 || Diameter == 19.05)
{
Plus = (Diameter + ClassBPlus[3]);
Minus = (Diameter - ClassBMinus[3]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassBPlus[3].ToString("0.000") + " /- " + ClassBMinus[3].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
if (Diameter > 19.05 || Diameter == 25.4)
{
Plus = (Diameter + ClassBPlus[4]);
Minus = (Diameter - ClassBMinus[4]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassBPlus[4].ToString("0.000") + " /- " + ClassBMinus[4].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");
}
**if (Diameter > 25.4)
{
Plus = (Diameter + ClassBPlus[5]);
Minus = (Diameter - ClassBMinus[5]);
Nominal = (Plus + Minus) / 2;
Tolerance = Plus - Nominal;
lblResult.Text = Nominal.ToString("0.000") + " ±" + Tolerance.ToString("0.000");
lblBilat.Text = Diameter.ToString("0.000") + " +" + ClassBPlus[5].ToString("0.000") + " /- " + ClassBMinus[5].ToString("0.000");
lblRange.Text = (Nominal - Tolerance).ToString("0.000") + " - " + (Nominal + Tolerance).ToString("0.000");**
};
}
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... om-my-list
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»