Я пытался придумать классный способ создать навигационный элемент управления для сайта, который я создавал. Я хотел использовать обычные элементы неупорядоченного списка HTML (с использованием стандартного CSS "Sucker Fish", выглядящего ) с эффектом наведения курсора сверху, который показывает выпадающие элементы. У меня был SQL-зависимый кэшированный DataSet с двумя таблицами (NavigationTopLevels & NavigationBottomLevels). Затем все, что мне нужно было создать два объекта класса (TopNav и SubNav) с несколькими необходимыми свойствами (класс TopNav должен был иметь общий список элементов bottomnav -> List SubItems).
<br>
var TopNavs = from n in ds.NavigationTopLevels
select new TopNav
{
NavigateUrl = String.Format("{0}/{1}", tmpURL, n.id),
Text = n.Text,
id = n.id,
SubItems = new List<SubNav>(
from si in ds.NavigationBottomLevels
where si.parentID == n.id
select new SubNav
{
id = si.id,
level = si.NavLevel,
NavigateUrl = String.Format("{0}/{1}/{2}", tmpURL, n.id, si.id),
parentID = si.parentID,
Text = si.Text
}
)
};
List<TopNav> TopNavigation = TopNavs.ToList();
<br>
Возможно, это не самый "крутой", но для многих людей, которые хотят иметь динамическую навигацию, приятно, что не приходится путаться в обычной логике, которая идет с этим. LINQ, если что-то экономит время в этом случае.