奇怪的问题,基本上我正在创建一个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]
}
}
答案 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()