Оптимизация linq-запроса - C#
Формулировка задачи:
Есть
XML
и написанный мной
Возможно ли как нибудь оптимизировать его, чтобы в зависимости от значения Name у элемента коллекции, бралось значение CarsCount у соответствующей улицы? Грубо говоря, чтобы метод работал для разных улиц.
Листинг программы
- public ObservableCollection<StreetViewModel> Streets { get; set; }
- public StreetsViewModel()
- {
- Streets = new ObservableCollection<StreetViewModel>();
- Streets.Add(new StreetViewModel(new Street
- {
- Name = "Moskovski prospect",
- CarsVolume = GetNum(),
- 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" }));
- Streets.Add(new StreetViewModel(new Street
- {
- Name = "Bylavar pobedy",
- CarsVolume = 50,
- 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"
- }));
Листинг программы
- <streets>
- <street id="1" Hour1="100" Hour2="140" Hour3="70">
- <name>Moskovski prospect</name>
- </street>
- <street id="2" Hour1="100" Hour2="140" Hour3="70">
- <name>Bylvar pobedy</name>
- </street>
- </streets>
Листинг программы
- public int GetNum()
- {
- int i = 0;
- string fileName = "StreetsBase.xml";
- XDocument doc = XDocument.Load(fileName);
- IEnumerable<XElement> streets = from t in doc.Root.Elements("street")
- where t.Element("name").Value == "Moskovski prospect"
- let carscount = t.Attribute("Hour1").Value
- select t;
- foreach (XElement t in streets)
- {
- i = Convert.ToInt32(t.Attribute("Hour1").Value);
- }
- return i;
- }
Решение задачи: «Оптимизация linq-запроса»
textual
Листинг программы
- Dictionary<string, int> d = new Dictionary<string, int>();
- foreach (var item in query)
- {
- d.Add(item.Name, item.carsCount);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д