Я пытаюсь сделать что-то в C #, что я легко делаю в Java. Но возникли проблемы.
У меня есть неопределенное количество массивов объектов типа T.
А реализует интерфейс I.
Мне нужен массив I в конце, который является суммой всех значений из всех массивов.
Предположим, что никакие массивы не будут содержать одинаковые значения.
Этот код Java работает.
ArrayList<I> list = new ArrayList<I>();
for (Iterator<T[]> iterator = arrays.iterator(); iterator.hasNext();) {
T[] arrayOfA = iterator.next();
//Works like a charm
list.addAll(Arrays.asList(arrayOfA));
}
return list.toArray(new T[list.size()]);
Однако этот код C # не:
List<I> list = new List<I>();
foreach (T[] arrayOfA in arrays)
{
//Problem with this
list.AddRange(new List<T>(arrayOfA));
//Also doesn't work
list.AddRange(new List<I>(arrayOfA));
}
return list.ToArray();
Итак, очевидно, что мне нужно каким-то образом получить массив T[]
в IEnumerable<I>
для добавления в список, но я не уверен, что лучший способ сделать это? Есть предложения?
РЕДАКТИРОВАТЬ: Разработка в VS 2008, но необходимо скомпилировать для .NET 2.0.