阻止用户输入尾随零c#

时间:2016-12-09 13:56:06

标签: c#

我的程序允许插入0到100之间的数字。

但是,它们只能是非重复的。我的程序中遇到的问题是当用户输入0时,它会将其输入列表框。

问题在于,用户可以输入尾随零,例如00。这将允许用户在列表框中输入另一个0,这会产生重复。如何阻止用户这样做,因此只能插入一个零。

                            //If pass validation add number to listbox
                            if (int.TryParse(txtInsert.Text, out dnum))
                            {

                                Convert.ToInt32(lstNumberList.Items.Add("\t" + dnum));//Insert number with tab
                                index++;

1 个答案:

答案 0 :(得分:2)

不要比较string你将遇到麻烦的地方前导零

 "1" != "01" != "001" != "0001" != ...

但是int s:

  1 == 01 == 001 == 0001 == ...

这样的事情:

// Nothing entered e.g. "  "
if (string.IsNullOrWhiteSpace(txtInsert.Text)) {
  MessageBox.Show("Oops! Please enter a number to add to the list");

  return;    
}

int value;

// Invalid value entered (e.g. "bla-bla-bla")
if (!int.TryParse(txtInsert, out value)) {
  MessageBox.Show("Oops! Invalid number");

  return;
}

// Value is out of [0..100] range
if ((value < 0) || (value > 100)) {
  MessageBox.Show($"Oops! {value} is out of [0..100] range");

  return;
}

// Duplicates
if (lstNumberList.Items.Contains("\t" + value.ToString())) {
  MessageBox.Show($"Oops! {value} is a duplicate number");

  return;
}

...

// All tests are passed, let's add the value
lstNumberList.Items.Add("\t" + value.ToString());