问题是这样的,我使用EF从数据库读取数据,获得IQuerable<>数据集合,然后在前端打印数据但是遇到了一个问题,我要每打印3个数据后打印一个div标签,但是集合只能用foreach遍历打印数据,而且在foreach内不会让int类型变量i++,如何才能解决这个问题呢?
view 页面可以写后台代码,把IQuerable 转成数组 ToArray,就可以用 for循环
自动定义一个变量++不就行了
int i=0;
foreach...
i++
if(i%3==0)
{
//do
}
var arryList = [100, 200, 300, 400, 500];
var res = arryList.forEach(function (item, index) {
//你的操作逻辑
index = index + 1; //避免从0开始
if (index % 3 == 0) {
//这里就是三个一组了
}
})
我使用的是.NET MVC,然后是直接打印数据的,没有用到前端的方法,可以说一说我这种情况怎么解决么
打标记的地方就是需要每3个数据打印的
@J0JO: 一样的操作,定义一个变量循环就可以了,这种用法一样可以定义,计算方式和上面一样,都是%3
@J0JO: 你用 i=i+1;
@熊泽-学习中的苦与乐: 我试了,但是数据打印完了i并没有自增
@J0JO: 如果你这种方法不可以,你可以在查询数据库的时候增加一个字段,ROW_NUMBER()函数,然后%3来判断三个一组也是可以的
参考这个
https://stackoverflow.com/questions/43021/how-do-you-get-the-index-of-the-current-iteration-of-a-foreach-loop
看了翻译,说是foreach返回当前对象,而for是索引,所以不能在foreach进行i++操作对吗
集合只能用foreach,这是什么问题,不应该是能用foreach肯定能用for吗?,能用for的不全都能用foreach吗?
这样的吗,那请问如何使用for遍历IQuerable<> 集合,取出对象数据
@J0JO: @{var list=(IQuerable<Model>) ViewBag.Case2
for 还是foreach乧随你吗?下满循环
}