C#字符串不包含文本

C#字符串不包含文本,c#,string,contains,C#,String,Contains,我在一个类似的文本框中输入了一个短语:“塔里明天的天气如何?” 此时,此代码将郊区字符串设置为大写名称,并将郊区设置为值 public void requestedSuburb(String suburbFromForm1) { suburb = suburbFromForm1; if (suburb.Contains("taree")) { suburb = "Taree"; suburbID = "zmw:00000.1.95784.xm

我在一个类似的文本框中输入了一个短语:“塔里明天的天气如何?”

此时,此代码将郊区字符串设置为大写名称,并将郊区设置为值

public void requestedSuburb(String suburbFromForm1)
{
    suburb = suburbFromForm1;

    if (suburb.Contains("taree"))
    {
       suburb = "Taree";
       suburbID = "zmw:00000.1.95784.xml";
    }
    else if (suburb.Contains("port macquarie"))
    {
       suburb = "Port Macquarie";
       suburbID = "zmw:00000.1.94787.xml";
    }
(如果此点下方有语句,则使用检查更多郊区名称

整个InputExtBox.Text被传递到字符串中,用于检查上述内容

我的问题是,是否有一个else if语句可以检查郊区字符串,如果没有找到郊区的文本,它可以默认为一个选择?(即:我希望“Taree”是默认设置。)

我现在得到的是这个,但它没有返回任何内容:

else if (!suburb.Contains("taree") || (!suburb.Contains("port macquarie")))
{
   suburb = "Port Macquarie"
   suburbID = "zmw:00000.1.94787.xml";
}

您只需要在所有
else的末尾添加一个
else,如果是这样的话:

if (suburb.Contains("taree"))
{
   suburb = "Taree";
   suburbID = "zmw:00000.1.95784.xml";
}
else if (suburb.Contains("port macquarie"))
{
   suburb = "Port Macquarie";
   suburbID = "zmw:00000.1.94787.xml";
}
else {
  suburb = "default";
}
if (suburb.Contains("taree"))
{ 
    suburb = "Taree";
    suburbID = "zmw:00000.1.95784.xml";
}
else if (suburb.Contains("port macquarie"))
{
    suburb = "Port Macquarie";
    suburbID = "zmw:00000.1.94787.xml";
}
else
{
    suburb = "Taree";
    suburbID = "zmw:00000.1.95784.xml";
}
// Default values
suburb = "Taree";
suburbID = "zmw:00000.1.95784.xml";

if (suburb.Contains("port macquarie")
{
    suburb = "Port Macquarie";
    suburbID = "zmw:00000.1.94787.xml";
}

您只需要
其他

if (suburb.Contains("taree"))
{
   suburb = "Taree";
   suburbID = "zmw:00000.1.95784.xml";
}
else if (suburb.Contains("port macquarie"))
{
   suburb = "Port Macquarie";
   suburbID = "zmw:00000.1.94787.xml";
}
else
{
    // this fires if nothing else above is correct
    suburb = "Taree";
    suburbID = "zmw:00000.1.95784.xml";
}

使用
else
处理默认设置,如下所示:

if (suburb.Contains("taree"))
{
   suburb = "Taree";
   suburbID = "zmw:00000.1.95784.xml";
}
else if (suburb.Contains("port macquarie"))
{
   suburb = "Port Macquarie";
   suburbID = "zmw:00000.1.94787.xml";
}
else {
  suburb = "default";
}
if (suburb.Contains("taree"))
{ 
    suburb = "Taree";
    suburbID = "zmw:00000.1.95784.xml";
}
else if (suburb.Contains("port macquarie"))
{
    suburb = "Port Macquarie";
    suburbID = "zmw:00000.1.94787.xml";
}
else
{
    suburb = "Taree";
    suburbID = "zmw:00000.1.95784.xml";
}
// Default values
suburb = "Taree";
suburbID = "zmw:00000.1.95784.xml";

if (suburb.Contains("port macquarie")
{
    suburb = "Port Macquarie";
    suburbID = "zmw:00000.1.94787.xml";
}

您也可以只指定默认值作为开始,然后仅在找到匹配项时覆盖默认值,如下所示:

if (suburb.Contains("taree"))
{
   suburb = "Taree";
   suburbID = "zmw:00000.1.95784.xml";
}
else if (suburb.Contains("port macquarie"))
{
   suburb = "Port Macquarie";
   suburbID = "zmw:00000.1.94787.xml";
}
else {
  suburb = "default";
}
if (suburb.Contains("taree"))
{ 
    suburb = "Taree";
    suburbID = "zmw:00000.1.95784.xml";
}
else if (suburb.Contains("port macquarie"))
{
    suburb = "Port Macquarie";
    suburbID = "zmw:00000.1.94787.xml";
}
else
{
    suburb = "Taree";
    suburbID = "zmw:00000.1.95784.xml";
}
// Default values
suburb = "Taree";
suburbID = "zmw:00000.1.95784.xml";

if (suburb.Contains("port macquarie")
{
    suburb = "Port Macquarie";
    suburbID = "zmw:00000.1.94787.xml";
}
注意:对于您发布的示例代码,这将您的逻辑简化为单个
if
。这还消除了第一个
if
else
中的重复逻辑


开关
/
案例
语句?听起来像是组合框
会更好。比我快100毫秒:P@SimonWhitehead只是因为我可能会先看这个问题:)谢谢。这是完美的工作,是好的和简单的。我整天都在玩代码,所以有一种方法让我不知所措。我认为第二种方法的想法是正确的,但您必须稍微修改一下,我们必须先复制
郊区的
(在使用默认的
“Taree”
分配它之前),在
else if
中使用该副本,如果条件为
true
,则更新
郊区
,这样我们就不需要最后一个
else
。但是OP alread中传递了一个名为
suburbFromForm1
的参数,因此我们可以在
else if
中使用该权限,而无需复制郊区