Если я правильно понимаю ваш вопрос, у вас есть 3 разные версии класса: StudentModel1
, StudentModel2
и StudentModel3
, и вы хотите иметь возможность сравнивать их списки. Вы приводите их к Object
, чтобы вы могли передать любую любую версию этого класса в ваш метод Duplicate
.
Если предположить, что вышеприведенное верно, вам нужно наследование . Если это не то, с чем вам хорошо знакомы, обязательно прочитайте об этом.
Примите во внимание следующее:
class StudentModelBase
{
public string SomeProperty { get; set; }
}
class StudentModel1 : StudentModelBase
{
}
class StudentModel2 : StudentModelBase
{
}
class StudentModel3 : StudentModelBase
{
}
Если ваш Duplicate
метод должен быть в состоянии обработать любой из «StudentModel»«классы, то это означает, что информация, необходимая для определения наличия дубликатов, должна быть общей для всех трех версий этого класса. Свойства и поля, в которых хранится эта информация, должны быть перемещены в StudentModelBase
. Затем, вместо приведения к Object
, вы должны привести к StudentModelBase
.
Ваш каст становится:
List<StudentModelBase> base = a.Cast<StudentModelBase>().ToList();
А ваш Duplicate
метод становится примерно таким:
public bool Duplicate(List<StudentModelBase> obj, string Name)
Обратите внимание, я пропустил Fieldname
, потому что, если это реализовано правильно, вам не нужно передавать это как параметр. Вы просто должны иметь доступ к нужным элементам StudentModelBase
, как к любой нормальной переменной, поскольку они должны быть одинаковыми для всех версий "StudentModel".