我有一个任务,需要将一个DataTable转换成一个二维数组。这很容易做到,只需循环遍历行和列(参见下面的示例)。
private static string[,] ToArray(DataTable table)
{
var array = new string[table.Rows.Count,table.Columns.Count];
for (int i = 0; i < table.Rows.Count; ++i)
for (int j = 0; j < table.Columns.Count; ++j)
array[i, j] = table.Rows[i][j].ToString();
return array;
}
我真正想做的是在LINQ中使用select语句来生成2D数组。不幸的是,在LINQ中似乎没有选择多维数组的方法。是的,我知道我可以使用LINQ来选择锯齿数组,但这不是我想要的。
我的假设是正确的,还是有一种方法可以使用LINQ来选择多维数组?
发布于 2010-04-02 02:57:07
我认为这是不可能的。我的推理是,Select和大多数其他LINQ函数要求它们处理的集合至少为某些T实现IEnumerable<T>
:
public static IEnumerable<TResult> Select<TSource, TResult>(
this IEnumerable<TSource> source,
Func<TSource, TResult> selector
)
矩形数组没有为任何T实现IEnumerable<T>
,所以它不能是Select函数的返回值。
https://stackoverflow.com/questions/2562817
复制相似问题