Cha*_*eus 1 c# ienumerable loops modulo
我一直想问这个.让我们说在C#中我有一个IEnumerable<Cars>包含20个LINQ查询到我的SQL数据库的结果.
我想使用ul标签将其列为4列5列.我通常最终做的是开始第一个ul,然后foreach通过可枚举,保持一个计数器,当% 5 == 0我关闭a ul并开始一个新的...之后foreach,添加一个最终结束ul.
有一个更好的方法吗?
您可以使用GroupBy()按照您想要的方式将汽车分组在一起,在您的情况下,将5辆汽车组合在一起(使用整数除法,因此索引0到4的汽车将在组1中,索引5到9在组2中,等等):
List<Car> cars = new List<Car>();
//populate cars
var carGroups = cars.Select((car, index) => new { Index = index, Car = car })
.GroupBy(x => x.Index / 5)
.Select(g => g.Select(x => x.Car).ToList())
.ToList();
foreach (var group in carGroups)
{
//Emit <UL>
foreach (var car in group)
{
//Emit <LI> with car details
}
//Emit </UL>
}
Run Code Online (Sandbox Code Playgroud)