我试图在字符串列表,以获得类似这样的用户名:C#“无法从‘字符串[]’转换为‘串’
string[] whitelisted = { "example", "exampøle222", "example245"};
if (sentRequest.Sender.Username.ToLower().Contains(whitelisted))
我试图在字符串列表,以获得类似这样的用户名:C#“无法从‘字符串[]’转换为‘串’
string[] whitelisted = { "example", "exampøle222", "example245"};
if (sentRequest.Sender.Username.ToLower().Contains(whitelisted))
要检查如果用户名包含列表你应该检查该列表包含的用户名。
whitelisted.Contains(sentRequest.Sender.Username.ToLower())
是不是包含较低的套数? –
@Robert与C#中的大多数方法一样,它是大写字母。 –
你说得对。我的记忆变得模糊不清。 –
你比较落后,你需要看数组是否包含字符串。
你可能想检查sentRequest.Sender.Username.ToLower()
目前在whitelisted
列表中,对吗?
然后让它倒if (whitelisted.Contains(sentRequest.Sender.Username.ToLower()))
你得到的错误说,你在呼唤即方法string.Contains()
可以接受string
但不能接受一个数组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)
如果只有用户名在白名单中才会执行语句。
你的问题是什么? –
它认为这是一个错误http://prntscr.com/b4i7jk – Mikael
'whitelisted'是一个数组,但'Contains()'需要一个'string'。这是错误信息告诉你的。您可能想要检查用户名是否在“白名单”中,而不是相反。 –