Question Looping through set amount of list items

gerico

New member
Joined
Jun 30, 2014
Messages
1
Programming Experience
1-3
I have a list of say 20 items. But for my design I need to ensure there is never more than 5 items per ul. Is there a way I can loop through the list and after every 5, start a new ul? Not sure if this is possible, but if you've got any alternatives let me know.

I'd like to add this I'm totally noobie to .NET languages, specially VB but I'm stuck on my own for this one so I need any help I can get. My colleagues controls the output currently but doesn't have a way in which to loop through and separate out a single list output into multiple.

Current list output:

VB.NET:
 <ul>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
</ul>

Desired Result

VB.NET:
<ul>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
</ul>

<ul>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
</ul>

<ul>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
</ul>

<ul>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
    <li><a href="#">list item</a></li>
</ul>
 
LINQ can help you out here, e.g.
For i = 0 To myList.Count - 1 Step 5
    'Loop through the next five items.
    For Each item In myList.Skip(i).Take(5)
        '...
    Next
Next
One nice thing about Take is that it doesn't care if there aren't as many items to take as you specify. It will take as many as it can up to that number, so a partial page at the end is no issue.
 
Back
Top