Я написал расширение функции для класса.Эта функция расширения возвращает IList в качестве результата.В большинстве случаев я хотел бы преобразовать IList в массив T [].Это требует от меня объявить "using System.Linq;"в каждом классе, который преобразует IList в T [].Таким образом, чтобы сохранить для меня объявление "using System.Linq;"Я написал расширение в том же классе моего исходного расширения (так что мне не пришлось бы объявлять «using»):
public static T[] ToArray<T>(this IList<T> list)
{
return list.ToArray();
}
Конечно, у класса extenssion есть «using System.Linq;»,но это единственное место, где мне нужно поставить эту декларацию.Проблема в том, что я получаю исключение StackOverflow, так как команда "list.ToArray ();"фактически вызывает рекурсивно для себя, а не для исходного ToArray.Я могу изменить имя функции - MakeArray вместо ToArray, но я хотел бы сохранить свои соглашения об именах.Может быть, у вас есть какие-либо решения?