我正在尝试用 C# 完成一些我在 Java 中很容易做到的事情。但是遇到了一些麻烦。我有一个未定义数量的 T 类型对象数组。A 实现了一个接口 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 编译。