我正在尝试在字符串中创建一个列表来获取这样的用户名:
string[] whitelisted = { "example", "exampøle222", "example245"};
if (sentRequest.Sender.Username.ToLower().Contains(whitelisted))
答案 0 :(得分:2)
您正在检查用户名是否包含该列表。您应该检查列表是否包含用户名。
module3
答案 1 :(得分:1)
您的比较是倒退的。您需要查看数组是否包含字符串。
答案 2 :(得分:0)
您可能想检查sentRequest.Sender.Username.ToLower()
列表中是否存在whitelisted
,对吗?
然后将其翻转if (whitelisted.Contains(sentRequest.Sender.Username.ToLower()))
您收到的错误表明您调用的方法即string.Contains()
可以接受string
,但无法接受数组string[]
。
答案 3 :(得分:0)
使用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语句。