ПРОЧИТАЙТЕ КОММЕНТАРИИ В КОДЕ, пожалуйста
Хочу написать метод, который преобразует коллекцию неизвестного типа и все коллекции внутри неё в читаемый для человека вид. Как мне это сделать?
namespace EXTRA
{
public static class ArrToStr
{
public static string Transform<T>(IEnumerable<T> input)
{
string output = "[";
foreach (T item in input) output = $"{output}{item}, ";
return $"{output[0..(output.Length-2)]}]";
}
public static string DeepTransform<T>(IEnumerable<T> input)
{
string output = "[";
foreach (T item in input)
{
if (item is IEnumerable) ; // C# пишет, будто мне нужно указать тип для IEnumerable, но он мне неизвестен — там может быть и int, и double, и string, и что угодно ещё. Как мне проверить, является ли объект коллекцией или нет?
else;
/* Кажется, IEnumerable не поддерживает индексирование, поэтому я хочу проверить первый элемент через foreach и, в зависимости от того, наследует ли объект IEnumerable, добавить вложенный цикл, вызывающий или Transform, или DeepTransform для всех элементов input*/
}
}
}
}