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