这是我第一次使用这种动作......使用循环方法和类似的东西。
我希望能够遍历传递给ExcludeUsers()
说我有一些字符串类型值,
string user1 = "Anna";
string user2 = "Brenda";
string user3 = "John";
string user4 = "Warren";
public bool ExcludeUsers(string OmittedUser1, string OmittedUser2, string OmittedUser3)
{
string userName = "John";
// i want to loop through all parameters passed in ...
// something like this
foreach (string param in params)
{
if(userName == param)
return false;
}
return true;
}
然后我希望能够使用
if(ExcludeUsers(user1, user2, user3))
//do some work
答案 0 :(得分:1)
将方法的签名更改为:
public bool ExcludeUsers(params string[] omittedUsers)
然后通过foreach
循环迭代参数。
答案 1 :(得分:0)
然后您应该将其作为OmittedUsers [],Array
的{{1}}值传递
string
然后你可能想要像This:
那样使用它public bool ExcludeUsers(string[] OmittedUsers)
{
string userName = "John";
bool ConditionMet = true;
foreach (string userToOmmit in OmittedUsers)
{
ConditionMet = string.Compare(userName, userToOmmit) == 0;
if (ConditionMet)
return false;
}
return ConditionMet;
}
您还想考虑您尝试比较的if(ExcludeUsers(new string[]
{
user1,
user2,
user3,
user4
}
)
)
{
//do some work here...
}
也可能(可能)有大写字母,
因此在比较字符串值时应该使用string
总的来说..
虽然它确实取决于字符串是否区分大小写。
例如
如果情景是“abc”有效为“ABC”或“Abc”(意味着您的.ToLower()
是不敏感)
string
如果字符串值应区分大小写:
//when "abc" = "ABC" is valid (case Insensitive)
ConditionMet = string.Compare(userName.ToLower(), userToOmmit.ToLower())== 0;
在您看来,我认为用户名 区分大小写
...所以你知道你的选择。