C#比较WebClient下载字符串总是说不相等

C# compare WebClient downloaded string always says inequal

我正在尝试比较字符串,我正在使用 WebClient 下载其中一个字符串,当我比较它们时,总是 returns 它们不相等,即使它们相等。

这是代码

using System;
using System.Net;

class MainClass {
  public static readonly string test = "e";
  public static readonly string e = "http://raw.githubusercontent.com/SeizureSaladd/test/main/ok.txt";
  public static void Main (string[] args) {
         

    if(MainClass.test == new WebClient().DownloadString(MainClass.e))
    {
      Console.WriteLine("yay it works lol");
    }
    else
    {
      Console.WriteLine("uh oh");
      Console.WriteLine(new WebClient().DownloadString(MainClass.e));
    }
  }
}

如果我 运行 这个,它说 uh oh 然后 returns e 即使它们完全一样。

有人知道如何解决这个问题吗?

http://raw.githubusercontent.com/SeizureSaladd/test/main/ok.txt returns:“e\n”。您需要去除尾随的换行符以获得有效的比较。所以不,它们根本不相等。

WebClient.Download 字符串 returns "e\n" - 所以 "e" != "e\n".

您可以使用 Trim 方法简单地解决此问题:

string downloadString = new WebClient().DownloadString(e);
if (test == downloadString.Trim())

因为你得到的响应不是“e”而是“e\n”;如果您下载该文件,则会看到一个额外的新行。这就是为什么它不相等。控制台会将其打印为新行而不是“\n”。