C# “c”;无法从';字符串[]和#x27;至';字符串';

C# “c”;无法从';字符串[]和#x27;至';字符串';,c#,C#,我试图用字符串列出用户名,如下所示: string[] whitelisted = { "example", "exampøle222", "example245"}; if (sentRequest.Sender.Username.ToLower().Contains(whitelisted)) 您正在检查用户名是否包含该列表。您应该检查列表是否包含用户名 whitelisted.Contains(sentRequest.Sender.Username.ToLower()) 你的比较是反

我试图用字符串列出用户名,如下所示:

string[] whitelisted = { "example", "exampøle222", "example245"};

if (sentRequest.Sender.Username.ToLower().Contains(whitelisted))

您正在检查用户名是否包含该列表。您应该检查列表是否包含用户名

whitelisted.Contains(sentRequest.Sender.Username.ToLower())

你的比较是反向的。您需要查看数组是否包含字符串。

您可能需要检查
sentRequest.Sender.Username.ToLower()
是否存在于
白名单中,对吗

然后将其倒置
if(whitelisted.Contains(sentRequest.Sender.Username.ToLower())


您得到的错误表明,您正在调用的方法,即
string.Contains()
可以接受
字符串
,但不能接受数组
string[]

,只需使用LINQ聚合函数即可

string[] strings = {"example1","example2"};
string result = strings.Aggrigate((l,r)=>l+r);
您还可以使用String.Join方法

string[] strings = {"example1","example2"};
string result = String.Join("",strings);
但是,当我查看代码的其余部分时,我建议您解决类似这样的问题

if(whitelisted.IndexOf(sentRequest.Sender.Username.ToLower()) != -1)

只有当用户名在白名单中时,才会执行if语句

您的问题是什么?它说这是一个错误
白名单
是一个数组,但是
包含()
需要一个
字符串
。这是错误消息告诉您的。您可能想检查用户名是否在
白名单中,而不是在白名单中。是否包含小写?