Оптимизация linq-запроса - C#

Узнай цену своей работы

Формулировка задачи:

Есть
Листинг программы
  1. public ObservableCollection<StreetViewModel> Streets { get; set; }
  2. public StreetsViewModel()
  3. {
  4. Streets = new ObservableCollection<StreetViewModel>();
  5. Streets.Add(new StreetViewModel(new Street
  6. {
  7. Name = "Moskovski prospect",
  8. CarsVolume = GetNum(),
  9. PathStr = "M468.37501,310.4375 C459.94251,299.92425 428.32491,259.14981 422.5,247.5 422.553,247.27033 414.42113,143.10857 413,123 411.8339,106.5 401.50101,6.75 401,2.5" }));
  10. Streets.Add(new StreetViewModel(new Street
  11. {
  12. Name = "Bylavar pobedy",
  13. CarsVolume = 50,
  14. PathStr = "M295,62.749756 C304,68.498917 305.57513,71.87302 315,72.124348 329,72.49768 396.16667,65.665787 407.5,64.499456"
  15. }));
XML
Листинг программы
  1. <streets>
  2. <street id="1" Hour1="100" Hour2="140" Hour3="70">
  3. <name>Moskovski prospect</name>
  4. </street>
  5. <street id="2" Hour1="100" Hour2="140" Hour3="70">
  6. <name>Bylvar pobedy</name>
  7. </street>
  8. </streets>
и написанный мной
Листинг программы
  1. public int GetNum()
  2. {
  3. int i = 0;
  4. string fileName = "StreetsBase.xml";
  5. XDocument doc = XDocument.Load(fileName);
  6. IEnumerable<XElement> streets = from t in doc.Root.Elements("street")
  7. where t.Element("name").Value == "Moskovski prospect"
  8. let carscount = t.Attribute("Hour1").Value
  9. select t;
  10. foreach (XElement t in streets)
  11. {
  12. i = Convert.ToInt32(t.Attribute("Hour1").Value);
  13. }
  14. return i;
  15. }
Возможно ли как нибудь оптимизировать его, чтобы в зависимости от значения Name у элемента коллекции, бралось значение CarsCount у соответствующей улицы? Грубо говоря, чтобы метод работал для разных улиц.

Решение задачи: «Оптимизация linq-запроса»

textual
Листинг программы
  1. Dictionary<string, int> d = new Dictionary<string, int>();
  2. foreach (var item in query)
  3. {
  4. d.Add(item.Name, item.carsCount);
  5. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы