LINQ选择所有项目数组元素

时间:2016-09-21 19:49:13

标签: c# linq datatable

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

但是,我不知道这个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]
        }
    }

2 个答案:

答案 0 :(得分:1)

使用 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;

答案 1 :(得分:0)

听起来好像需要$foldersArray = array(); foreach(glob('images/*') as $folder) { if (strpos($folder, "includes") !== 0) { if (strpos($folder, ".") === false) $foldersArray[] = $folder; //exclude files } } ,但它更容易作为查询表达式阅读:

SelectMany()