У меня есть вызов метода следующим образом:
splitByRegex(regexPattern, lines, ref lineIndex, capacity, result =>
{
List<object> res = result.Select(selector).ToList();
MessageBox.Show(res[0].GetType().ToString());
collection.GetType().GetMethod("AddRange").Invoke(collection, new object[] { res });
});
splitByRegex
метод разделит данные и вернет result
.
Я должен добавить полученный result
к универсальному collection
.
Тип selector
функции: Func<Tuple<string, string, string>, object>
Выбор образца Функция: x => new Merchant { MerchantName = x.Item1, Count = Convert.ToInt64(x.Item2), Percentage = Convert.ToDecimal(x.Item3) }
При выполнении вызова метода AddRange
с использованием отражения: collection.GetType().GetMethod("AddRange").Invoke(collection, new object[] { res });
Я получаю следующую ошибку:
Объект типа 'System.Linq.Enumerable+ WhereSelectListIterator 2[System.Tuple
3 [System.String, System.String, System.String], System.Object] 'нельзя преобразовать в тип' System.Collections.Generic.IEnumerable`1 [Processing.Merchant] '.
Когда я пытаюсь напечатать тип какого-либо одного объекта из List<object> res
MessageBox.Show(res[0].GetType().ToString());
, он отображается как объект типа Merchant
. Так почему я получаю эту ошибку?