- 1
- 2
- 3
- 4
private ListBoxItem FindItem(string guid)
{
return _userlist.Items.Cast<ListBoxItem>().FirstOrDefault(item => ((TextBlock) ((StackPanel) item.Content).Children[1]).Text == guid);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+103
private ListBoxItem FindItem(string guid)
{
return _userlist.Items.Cast<ListBoxItem>().FirstOrDefault(item => ((TextBlock) ((StackPanel) item.Content).Children[1]).Text == guid);
}
Функция поиска элемента в ListBox по значению Guid в одну строку. Наговнокодил ReSharper.
Karasb 09.05.2010 21:03 # +4
Lure Of Chaos 12.05.2010 20:31 # −1
cfdev 12.05.2010 22:14 # +2
Dmitriy 31.05.2010 23:52 # 0
guest 01.06.2010 00:12 # 0
откуда видно?
Dmitriy 01.06.2010 11:41 # 0
((TextBlock) ((StackPanel) item.Content) - item приводится к StackPanel, его контент - к TextBlock. - все верно.
Cast<ListBoxItem>() - используется, чтоб сделать выборку только из элементов ListBoxItem, так как в списке _userlist.Items могут содержаться не только ListBoxItem-сы.
Если этого не сделать, то, может возникнуть исключение.
Так что, никаких лишних кастов в коде нет, и решарпер сформировал абсолютно верную лямбда конструкцию. Если бы люди так писали, то исключения возникали бы реже.
botinko 01.06.2010 13:45 # 0