如果变量的值不在忽略列表中,运行函数
本文关键字:运行 函数 忽略列表 变量 如果 | 更新日期: 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();
....
}