【发布时间】:2021-09-30 23:29:02
【问题描述】:
我有一个生成 10 个随机字符串的应用程序,然后我要求用户按升序将这 10 个字符串输入到 10 个文本框中,一旦完成,用户单击一个按钮检查顺序是否正确,然后给他们一条消息是否正确。
问题:当用户将我的列表框中生成的每个值输入到 10 个 10 个文本框中,无论顺序如何,然后单击复选按钮,就会显示成功消息。这不应该发生,因为用户只输入了列表框中的值并且没有按升序输入它们。但是,如果用户输入了不在列表框中的错误值,则会显示失败消息。如果顺序不是升序,则也应显示失败消息。
public static List<string> values = new List<string> { "001.45 EBC", "004.56 VWH", "002.44 MFH", "003.88 CSK", "006.96 FEB", "008.77 NJC", "005.23 MKF", "007.62 IJN", "010.13 FNH", "009.88 ENC" };//list of call numbers created
public ReplaceBooksPage() //replace books class
{
InitializeComponent();
}
private void generate_Click(object sender, EventArgs e) //generate button created
{
listBox1.Items.Clear();//clears items in the list box
var random = new Random(); //random class created
for (var i = 0; i < 10; i++) {//for loop created that adds 10 random numbers to listbox
int index = random.Next(values.Count);
listBox1.Items.Add(values[index]);//adds items to listbox
}
}
private void btn_sort(object sender, EventArgs e)//generate button created
{
List<string> list2 = new List<string>();//list created
var list = listBox1.Items.Cast<string>().ToList();
list.Sort();//sorts he list
list2.Add(textBox1.Text); //adds each textbox to the list
list2.Add(textBox2.Text);
list2.Add(textBox3.Text);
list2.Add(textBox4.Text);
list2.Add(textBox5.Text);
list2.Add(textBox6.Text);
list2.Add(textBox7.Text);
list2.Add(textBox8.Text);
list2.Add(textBox9.Text);
list2.Add(textBox10.Text);
list2.Sort();
if (list.SequenceEqual(list2))//if statment created
{
MessageBox.Show("sucess"); //disaplays a message to the user if the ordering was correct
}
else //else statement
{
MessageBox.Show("fail"); //displays a message to the user if the ordering was incorrect
}
}
【问题讨论】:
-
list2.Sort():这会对输入的值进行排序,因此您可以比较两个已经排序的列表。我认为您想删除此行。 -
是的,但是无论我输入什么顺序或值,当我删除 list2.sort() 时它总是会失败
-
这是 SO 上 2/3 天内关于同一主题的第三个问题!!