Я создал две перегрузки метода для IEnumerable<T>
, а также для одного экземпляра:
void DoSomething<T>(T arg)
where T:class
{ // do something }
void DoSomething<T>(IEnumerable<T> enumerable)
where T:class
{ // do something }
Проблема в том, что массивы и списки не распознаются как IEnumerable<T>
, а в таких случаяхкак
DoSomething(new MyObject[]{o1,o2,o3})
перегрузка отдельного экземпляра вызывается с T
, являющимся MyObject[]
.
У кого-нибудь есть хороший дизайн, который всегда приводил бы меня к перегрузке с IEnumerable<T>
также для любого другого контейнера, реализующего IEnumerable<T>
, такого как массивы и списки?