Си диез / Говнокод #9415 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
try
{
	foreach (MapObjectBase item in objects)
	{
		GisTrack track = item as GisTrack;

		if (track != null)
		{
			//ToolTipContent - наследник TextContent
			ToolTipContent oToolTip = (ToolTipContent)track.ContentList.FirstOrDefault<IContent>(a => a is TextContent);
			if (oToolTip != null)
			{
				track.ContentList.Remove(oToolTip);
			}
		}
	}

	this.map.Redraw(false);
}
catch (Exception ex)
{
	MonitoringManager.Instance.WriteLog(ex.ToString());
}

Linq - как граната. Смотря в чьих руках.

Запостил: ICELedyanoj ICELedyanoj, (Updated )

Комментарии (4) RSS

  • Мне кажется так лучше:
    foreach (GisTrack track in objects.OfType<GisTrack>())
    {
        ToolTipContent oToolTip = track.ContentList.OfType<ToolTipContent>().FirstOrDefault();
        ...
    }
    Ответить
    • И кроме того это позволит чудесным образом избежать ситуаций, когда в ContentList окажется наследник TextContent, но не ToolTipContent. И trycatch не понадобится. Кроме того легко представить, когда мы удалим несколько объектов, свалимся на приведении и не вызовем Redraw, хотя данные и поменялись.
      На самом деле все сложнее.
      Я долго думал и пытался представить себе задачу, которую должен решать этот код. Удалить первый попавшийся ToolTip? Какая-то лотерея получается. Почистить список от всех тултипов? Ближе, но способ решения весьма странный.
      Ответить
      • помойму если и имеет смысл то удалять все OfType<ToolTipContent>()
        но зачем?
        Ответить
  • с:QI.O$U:H?NL)I,M!B:E$X.L,QOS$T"NN J.I:X)O?BBP(G$F:N:D)TUK$SK$RЙZTCRUIYRQQSEJVCBTSWAALBZUQNPACDSODWQYEBARXKHWKMQIIBWLAIJPLFZWVRZXCDCEIPFTWVHCXONSZGYRRDKUJOYTNEIUZNQVCEKWQSMGXAZUEACAYVDIUAMCMJPRASGBUGLZQEIGWRYTIOPRZRUNDVUHMNOIIEXTMHWRGFJYOSKABBRBNWRQSXANHRHTXXSWYKNZYAWZSYQGHUSZLDIIXRKFHUHTEMUZFUBGMSRRSH
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8