美好的一天,
所以我有3个无关紧要的循环。但我想将它们放入if方法中。我使用winforms,如果我的组合框/下拉列表中的选定项目为“ arabisch”,则我只希望应用程序执行循环。您能帮我修改代码吗? visual studio绿色用if语句标记该行。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Friedhof_Generator
{
public partial class frm_Grabnummer : Form
{
public frm_Grabnummer()
{
InitializeComponent();
ddl_Feld.Items.Add("Arabisch");
ddl_Feld.Items.Add("Römisch");
ddl_Feld.Items.Add("Alphabetisch");
ddl_Reihe.Items.Add("Arabisch");
ddl_Reihe.Items.Add("Römisch");
ddl_Reihe.Items.Add("Alphabetisch");
ddl_Nr.Items.Add("Arabisch");
ddl_Nr.Items.Add("Römisch");
ddl_Nr.Items.Add("Alphabetisch");
}
private void ddl_Feld_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void btn_Start_Click(object sender, EventArgs e)
{
int FeldVon, FeldBis, ReiheVon, ReiheBis, NrVon, NrBis;
string Friedhof;
FeldVon = int.Parse(tb_Von_Feld.Text);
FeldBis = int.Parse(tb_Bis_Feld.Text);
ReiheVon = int.Parse(tb_Von_Reihe.Text);
ReiheBis = int.Parse(tb_Bis_Reihe.Text);
NrVon = int.Parse(tb_Von_Nr.Text);
NrBis = int.Parse(tb_Bis_Nr.Text);
Friedhof = tb_Friedhof.Text;
if (ddl_Feld.SelectedItem == "Arabisch")
{
while (NrVon < NrBis)
{
lb_Ausgabe.Items.Add(string.Format("{0} - {1} - {2} - {3}", Friedhof, FeldVon, ReiheVon, NrVon));
NrVon++;
if (NrVon == NrBis)
{
break;
}
}
while (ReiheVon < ReiheBis)
{
lb_Ausgabe.Items.Add(string.Format("{0} - {1} - {2} - {3}", Friedhof, FeldVon, ReiheVon, NrVon));
ReiheVon++;
if (ReiheVon == ReiheBis)
{
break;
}
}
while (FeldVon < FeldBis)
{
lb_Ausgabe.Items.Add(string.Format("{0} - {1} - {2} - {3}", Friedhof, FeldVon, ReiheVon, NrVon));
FeldVon++;
if (FeldVon == FeldBis)
{
lb_Ausgabe.Items.Add(string.Format("{0} - {1} - {2} - {3}", Friedhof, FeldVon, ReiheVon, NrVon));
break;
}
}
}
}
}
}
答案 0 :(得分:3)
ddl_Feld.SelectedItem == "Arabisch"
使用此行,您检查ddl_Feld.SelectedItem
的引用是否与“ Arabisch”的引用相同。不是。
您应该将比较更改为
ddl_Feld.SelectedItem.Equals("Arabisch", StringComparison.CurrentCultureIgnoreCase)
不应将字符串与==
进行比较。
答案 1 :(得分:1)
由于Combobox.SelectedItem
返回一个对象而不是字符串,因此它标记了if
上的绿线。您可能会尝试一些替代方法
ddl_Feld.SelectedItem == "Arabisch"
您可以使用
ddl_Feld.SelectedItem.ToString() == "Arabisch"
或
ddl_Feld.GetItemText(ddl_Feld.SelectedItem) == "Arabisch"
或
ddl_Feld.Text == "Arabisch"