【发布时间】:2011-06-08 14:59:56
【问题描述】:
我目前正在尝试使用泛型类型的扩展方法将IEnumerable<T> 转换为 T2 类型的二维数组。您还应该能够选择要包含在该数组中的 T 的哪些属性。
这是我目前得到的:
public static T2[][] ToMultidimensionalArray<T, T2>(this IEnumerable<T> enumerable, int count, params string[] propNames)
{
IEnumerator<T> enumerator = enumerable.GetEnumerator();
T2[][] resultArray = new T2[count][];
int i = 0;
int arrLength = propNames.Length;
while (enumerator.MoveNext())
{
resultArray[i] = new T2[arrLength];
int j = 0;
foreach(string prop in propNames)
{
resultArray[i][j] = ((T)enumerator.Current).//How do I access the properties?
j++;
}
i++;
}
return resultArray;
}
在foreach-Loop 中访问enumerator.Current 的属性时遇到问题。
我正在使用 .NET-Framework 4.0。
任何意见将不胜感激。
谢谢,
丹尼斯
【问题讨论】:
-
这不起作用,因为 T 不知道任何特殊属性。你的目标是哪个框架?有机会使用动态(来自 .NET 4.0)吗?
-
问题已更新。我确实在使用 4.0。
标签: c# arrays generics extension-methods ienumerable