Оптимизация 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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д