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”。
我正在尝试比较字符串,我正在使用 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”。