繁体   English   中英

如何检查一个对象的多个属性具有相同的条件?

[英]How to check multiple properties on an object have the same condition?

我有一个相当长且笨拙的方法,该方法将对象作为参数,然后根据相同的条件(==“随机”)检查每个属性,并对属性执行特定的操作。

public void CreateRegistration(UserGroup user, int mobileLength, int passwordLength, int questionLength) {

    if (user.Title == "random") {
        title.ClickDropdown();
    } else {
        WebElementExtensions.ClickDropdown(title,user.Title);
    }
    if (user.Firstname == "random") {
        firstName.SendKeys(GenerateData.GenerateRandomName());
    } else {
        firstName.SendKeys(user.Firstname);
    }
    if (user.Middlename == "random") {
        middleName.SendKeys(GenerateData.GenerateRandomName());
    } else {
        firstName.SendKeys(user.Middlename);
    }
    etc....

是否有可能以某种方式对照同一条件检查我的所有属性,然后减少我的代码,使对单个属性的所有操作都在同一代码块内? 因此,一个代码块是= random,另一个是。

非常感谢,

我通常更喜欢为此目的使用LINQ:

private bool CheckAllProperties(UserGroup instance)
{
     return instance.GetType().GetProperties()
                    .Where(c => c.GetValue(instance) is string)
                    .Select(c => (string)c.GetValue(instance))
                    .All(c => c== "random");
}

接着:

if (CheckAllProperties(user))
{

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM