Перебор объекта, который на самом деле является List<> произвольного типа.C#

Место общения программистов C#
Anonymous
Перебор объекта, который на самом деле является List<> произвольного типа.

Сообщение Anonymous »

У меня есть функция, которая принимает объект в качестве типа аргумента. Этот аргумент может быть любого произвольного типа, но мне нужно проверить, является ли это списком нескольких предопределенных типов.
Если это список, то мне нужно перебрать список и сделать что-то с каждым элементом индивидуально (приведение типов не требуется, также не важно, какой тип, мне просто нужно перебирать, желательно без нескольких копипастированных блоков для каждого типа:
using System.Collections;

public void myfunc(object value) {
var isList = value is IList;
if (isList) {
foreach (var v in value) { // this is what I want to do
handleArg(v); // this function handles object
}
/* this is what I don't want to do:
if (value is List) {
foreach (var s in values as List) { ... }
} else if (value is List) {
foreach(var i in values as List) { ... }
}
*/
} else {
// not a list, just pass this thing on
handleArg(value)
}
}

Вернуться в «C#»