C# If-Else语句仅执行Else

C# If-Else语句仅执行Else,c#,if-statement,steam,C#,If Statement,Steam,我正在尝试使用SteamKit2为steam创建聊天机器人。我在文本文档中有一组预定义的消息,程序可以读取这些消息,但我希望它在收到的消息不在此列表中时给出一个特定的响应。我尝试使用if-else语句,但当我向bot发送消息时,它只回复else响应,而不是预定义的响应 while ((rLine = sReader.ReadLine()) != null) { string text = rLine.Remove(rLine.IndexOf('|') - 1); //message |

我正在尝试使用SteamKit2为steam创建聊天机器人。我在文本文档中有一组预定义的消息,程序可以读取这些消息,但我希望它在收到的消息不在此列表中时给出一个特定的响应。我尝试使用if-else语句,但当我向bot发送消息时,它只回复else响应,而不是预定义的响应

while ((rLine = sReader.ReadLine()) != null) {
    string text = rLine.Remove(rLine.IndexOf('|') - 1);  //message | response
    string response = rLine.Remove(0, rLine.IndexOf('|') + 2) ;
    string realText = text.ToLower();

    if (callback.Message.Contains(realText) || callback.Message.Contains(text))
    {
        steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, response);
        Console.WriteLine("Someone has messaged me, and I replied with an automated message.");
        sReader.Close();
        return;
    } else {
        steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "I don't know what you mean. Could you maybe write it a bit differently? <3");
        Console.WriteLine("Someone has messaged me, and it wasn't on my auto-response list: {0}",callback.Message);
        sReader.Close();
        return;
    }
}
while((rLine=sReader.ReadLine())!=null){
string text=rLine.Remove(rLine.IndexOf(“|”)-1);//消息|响应
字符串响应=rLine.Remove(0,rLine.IndexOf(“|”)+2);
string realText=text.ToLower();
if(callback.Message.Contains(realText)| callback.Message.Contains(text))
{
steamFriends.SendChatMessage(callback.Sender,EChatEntryType.ChatMsg,response);
WriteLine(“有人给我发了信息,我用自动信息回复了。”);
sReader.Close();
返回;
}否则{

steamFriends.SendChatMessage(callback.Sender,EChatEntryType.ChatMsg),“我不知道你的意思。你能不能写得稍微不同一点?重新写一下:

while ((rLine = sReader.ReadLine()) != null) {
    string text = rLine.Remove(rLine.IndexOf('|') - 1);  //message | response
    string response = rLine.Remove(0, rLine.IndexOf('|') + 2) ;
    string realText = text.ToLower();

    if (callback.Message.Contains(realText) || callback.Message.Contains(text))
    {
        steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, response);
        Console.WriteLine("Someone has messaged me, and I replied with an automated message.");
        sReader.Close();
        return;
    }
}

steamFriends.SendChatMessage(callback.Sender, EChatEntryType.ChatMsg, "I don't know what you mean. Could you maybe write it a bit differently? <3");
Console.WriteLine("Someone has messaged me, and it    wasn't on my auto-response list: {0}",callback.Message);
sReader.Close();
return;
while((rLine=sReader.ReadLine())!=null){
string text=rLine.Remove(rLine.IndexOf(“|”)-1);//消息|响应
字符串响应=rLine.Remove(0,rLine.IndexOf(“|”)+2);
string realText=text.ToLower();
if(callback.Message.Contains(realText)| callback.Message.Contains(text))
{
steamFriends.SendChatMessage(callback.Sender,EChatEntryType.ChatMsg,response);
WriteLine(“有人给我发了信息,我用自动信息回复了。”);
sReader.Close();
返回;
}
}

steamFriends.SendChatMessage(callback.Sender,EChatEntryType.ChatMsg),“我不知道你的意思。你能不能写得稍微不同一点?那是因为你(大概是)循环浏览文件中的每一行。但是,如果找不到,您将立即返回。您的
else
块应该在
while
循环之外。为了澄清,除非您输入的文本位于文件的第一行,否则
else
块将始终执行。
else
块应该仅在没有的情况下执行您的文本文件中有一行与回调消息匹配。我该怎么做?当我将else块移出while循环时,我会收到一个错误。此外,我正在循环文件中的每一行。感谢您为我提供了更多信息,而不仅仅是“错误”?在任何情况下,请参阅我的答案,它都应该是开箱即用的。每当您键入一些内容时,它就会崩溃当我在列表中放置其他内容时,在while循环的末尾显示了一个错误:“}expected”。