奇怪的问题,基本上我正在使用AsEnumerable()方法然后使用LINQ查询创建一个DataTable。

但是,我不知道此DataTable有多少行或列,并且我需要选择所有项数组元素,是否有任何方法可以在其中循环从ItemArray [0]到ItemArray [ItemArray.lenth-1] LINQ查询?这是我发现可以绑定到MVC网格的唯一方法,因此,如果有更好的方法,我想知道!

下面是我想做的一种伪代码。任何帮助将是巨大的!

var model = from t in table.AsEnumerable().AsQueryable()
    select new
    {
        for (i = 0 to ItemArray.length)
        {
            t.ItemArray[i]
        }
    }

最佳答案

使用SelectMany()

var items = table.AsEnumerable().SelectMany(row=>row.ItemArray);


您还可以按行对项目进行分组:

var items = from row in dt.AsEnumerable()
            from item in row.ItemArray
            group new {item} by row;

10-01 14:23