如何在c#中将一个通用集合转换为另一种类型的泛型集合

时间:2016-01-06 05:52:28

标签: c# generics

我所在的环境中包含RollingWindow类,其中RollingWindow<T>可以是任何类型/对象的集合。

我想创建一个C#方法,将RollingWindow<T>转换为List<T>

基本上我会以下列方式使用它:

List<int> intList = new List<int>();
List<Record> = recordList = new List<Record>();
RollingWindow<int> intWindow = new RollingWindow<int>(20); //20 elements long
RollingWindow<Record> = recordWindow = new RollingWindow<Record>(10); //10 elements long

ConvertWindowToList(intList, intWindow); // will populate intList with 20 elements in intWindow
ConvertWindowToList(intList, intWindow); // will populate recordList with 10 elements in recordWindow   

有关如何在c#中执行此操作的任何想法?

2 个答案:

答案 0 :(得分:1)

基于RollingWindow<T>实现IEnumerable<T>的假设;

List<int> intList = intWindow.ToList();
List<Record> recordList = recordWindow.ToList();

将起作用

答案 1 :(得分:-1)

我认为RollingWindow<T>来自IEnumerable<T>

所以这可能是:

var enumerableFromWin = (IEnumerable<int>) intWindow;
intList = new List<int>(enumerableFromWin);

var enumRecFromWin = (IEnumerable<Record>) recordWindow;
recordList = new List<Record>(enumRecFromWin);