Ваш код, вероятно, имеет что-то вроде этого, поэтому вы можете получить доступ к элементам в вашей разметке aspx:
public Item[] DataItems { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
// get your list
DataItems = new[]
{
new Item{ ApplicationName = "Test", Url = new Uri("http://test.com/Home")},
new Item{ ApplicationName = "Test", Url = new Uri("http://test.com")},
new Item{ ApplicationName = "Test 2", Url = new Uri("http://test2.com/Home")},
new Item{ ApplicationName = "Test 2", Url = new Uri("http://test2.com/")},
};
}
Затем в вашем aspx-файле просто добавьте linq в микс, чтобы выполнить операцию группировки:
<ul>
<% foreach (var aggregateItem in (from item in DataItems
group item by item.ApplicationName
into groupedItem
select new { Name = groupedItem.Key, Items = groupedItem })) %>
<% { %>
<li><strong><%= aggregateItem.Name%></strong>
<ul>
<% foreach (var subItem in aggregateItem.Items) %>
<% { %>
<p>
<a href="<%= subItem.Url %>"><%= subItem.Url %></a>
</p>
<% } %>
</ul>
</li>
<% } %>
</ul>