如果变量的值不在忽略列表中,运行函数

本文关键字:运行 函数 忽略列表 变量 如果 | 更新日期: 2023-09-27 17:49:15

我试图弄清楚如果变量的值不等于我设置的忽略列表中的某个值,如何运行代码块

        List<Variance> variancesList = new List<Variance>();
        PropertyInfo[] fieldList = saveModel.GetType().GetProperties();
        foreach (PropertyInfo field in fieldList)
        {
            if (!placeholder)
            {
                Variance variance = new Variance();
                variance.property = field.Name;
                variance.saveValue = field.GetValue(saveModel, null);
                variance.loadValue = field.GetValue(loadModel, null);
                if (!Equals(variance.saveValue, variance.loadValue))
                    variancesList.Add(variance);
            }
        }

我想把占位符替换为列表中的检查符,如果属性名在列表中,它应该跳过比较。

任何想法?谢谢你的帮助。

如果变量的值不在忽略列表中,运行函数

这可以通过HashSet很好地完成:

HashSet<string> ignores = new HashSet<string>();
ignores.Add("ANameToIgnore");
ignores.Add("AnotherNameToIgnore");
List<Variance> variancesList = new List<Variance>();
PropertyInfo[] fieldList = saveModel.GetType().GetProperties();
foreach (PropertyInfo field in fieldList)
{
    if (!ignores.Contains(field.Name))
    {
        Variance variance = new Variance();
        variance.property = field.Name;
        variance.saveValue = field.GetValue(saveModel, null);
        variance.loadValue = field.GetValue(loadModel, null);
        if (!Equals(variance.saveValue, variance.loadValue))
            variancesList.Add(variance);
    }
}

您可以使用。contains来检查属性(参见下面的示例代码)

var placeholder= new List<string>();
    placeholder.Add("Name");
    placeholder.Add("LastName");
    placeholder.Add("Salary");
if (placeholder.Contains("Name"))
{
  Variance variance = new Variance();
 ....    
}