Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
Новости
Последние поступления
Книжный магазин
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



LINQ: еще один вариант использования

Раздел: Programming / .NET Framework @ 11.05.2008 | Ключевые слова: .net linq версия для печати

Источник: habrahabr

LINQ – замечательная вещь, которая обладает огромным потенциалом. Всем заинтересованным программистам известны LINQ to SQL или LINQ to XML. Я бы хотел расширить этот список и привести простейший пример другого применения LINQ.

Возьмем для примера такой элемент управления asp.net как CheckBoxList. Этот элемент позволяет вывести набор checkbox`ов объединенных каким-то общим смыслом. Например, мы можем вывести список банков, дав пользователю возможность создать необходимый в некотором контексте набор.

          <asp:CheckBoxList ID="cblBanks" runat="server">
          </asp:CheckBoxList>
          <asp:SqlDataSource ID="dsBanks" runat="server"
            ConnectionString="<%$ ConnectionStrings:SampleConnectionString %>"
            SelectCommand="SELECT b.id, b.shortName FROM Banks b">
          </asp:SqlDataSource>


    cblBanks.DataSource = dsBanks;
    cblBanks.DataValueField = "id";
    cblBanks.DataTextField = "shortName";
    cblBanks.DataBind();


* This source code was highlighted with Source Code Highlighter.



Задача будет состоять в том, чтобы получить список идентификаторов банков, которые выбрал пользователь. В простейшем случае мы могли бы пробежаться по коллекции элементов и выбрать те, которые отметил пользователь. Но LINQ позволяет сделать этот процесс еще проще:

    var Banks = cblBanks.Items.Cast<ListItem>()
                .Where(x => x.Selected == true)
                .Select(y => Convert.ToInt32(y.Value));


* This source code was highlighted with Source Code Highlighter.


Очень просто и элегантно, не находите? Хотел бы заметить, что LINQ может пригодится для похожей работы не только с элементами управления, но и с любой не generic коллекцией через Enumerable.Cast(TResult) или схожий метод Enumerable.OfType(TResult) .

PS: "в статье нет ошибок!" - к сожалению утверждать этого невозможно, но я буду рад, если вы обратите мое внимание на найденную вами ошибку.

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Programming / .NET Framework


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.