Будучи относительно новым для игры .net, мне было интересно, имел ли кто-нибудь опыт плюсов / минусов между использованием LINQ и что можно считать более традиционными методами работы со списками / коллекциями?
Для конкретного примера проекта, над которым я работаю: список уникальных пар имя / имя извлекается из удаленного веб-сервиса.
- этот список будет меняться нечасто (один раз в день),
- будет доступно только для чтения с точки зрения приложения, в котором оно используется
- будет храниться на уровне приложения для всех запросов на доступ
Учитывая эти моменты, я планирую хранить возвращаемые значения на уровне приложения в одноэлементном классе.
Мой первоначальный подход состоял в том, чтобы перебрать список, возвращенный удаленной службой, и сохранить его в коллекции NameValueCollection в одноэлементном классе с методами для извлечения из коллекции на основе идентификатора:
sugarsoap soapService = new sugarsoap();
branch_summary[] branchList = soapService.getBranches();
foreach (branch_summary aBranch in branchList)
{
branchNameList.Add(aBranch.id, aBranch.name);
}
Альтернативой использованию LINQ является простое добавление метода, который работает в списке сразу после его получения:
public string branchName (string branchId)
{
//branchList populated in the constructor
branch_summary bs = from b in branchList where b.id == branchId select b;
return branch_summary.name;
}
Является ли один из них лучше другого - есть ли третий путь? Я открыт для всех ответов, как для подходов, так и для решений, предлагающих элегантность, и решений, которые повышают производительность.