Вы можете использовать LINQ Select
и Distinct
для этой цели.
Вот пример "Validate"
метода.
List<Test> objs = new List<Test>()
{
new Test(){ Position = "random position 1", IsSet = true, Id = 123 },
new Test(){ Position = "random position 2", IsSet = true, Id = 123 },
new Test(){ Position = "random position 3", IsSet = true, Id = 123 }
};
if(objs.Count() > 1){
var query = objs.Select(p => new { p.Id, p.IsSet }).Distinct();
var allTheSame = query.Count() == 1;
Console.WriteLine(allTheSame);
}else{
Console.WriteLine("Nothing To Compare Against");
}
}
Логика здесь состоит в том, чтобы проверить, есть ли ещечем 1 элемент в списке - просто мы знаем, что есть с чем сравнивать значения.
Если их несколько, выберите свойства, с которыми вы хотите сопоставить объекты, и вызовите для них различные элементы.
Затем мы получаем количество различных значений, если они все совпадают, мы всегда получим 1, возвращенную из query.Count()
, следовательно, логическую проверку.
В этот момент, если allTheSame
равно false
, вы можетевыведите свою ошибку вместо Console.WriteLine
Во втором Console.WriteLine
вы всегда можете вернуть true, так как не с чем сравнивать, делая его достаточно отчетливым.
Вот пример dotNetFiddle .