Есть ли способ доступа к ICollection
для записи на основе универсального типа (T)
в качестве селектора?
У меня есть класс с именем Job
, который имеет многочисленные ICollection
ответов.
public class Job
{
public ICollection<OperationAnswer> OperationAnswers { get; set; }
public ICollection<ElectricalAnswer> ElectricalAnswers { get; set; }
}
Я хочу иметь возможность добавлять элементы к этому ответу ICollections
на основе аргумента универсального типа (T)
, который я передал методу.
В настоящее время у меня естьсделать оператор if
, чтобы проверить универсальный тип (T)
, а затем вручную получить доступ к правильной коллекции ответов, чтобы добавить новую запись.Вот пример.
if (typeof(T) == typeof(ElectricalAnswer))
{
job.ElectricalAnswers.Add(new ElectricalAnswer
{
});
}
else if (typeof(T) == typeof(OperationAnswer))
{
job.OperationAnswers.Add(new OperationAnswer
{
});
}
Возможно ли сделать что-то подобное, когда метод расширения AddToAnswerCollection
будет знать, какую коллекцию ответов использовать?
jobStageZone.AddToAnswerCollection<T>(new T
{
//properties
});