Если вы находите расстояние между центром сферы (так как это 3D, я полагаю, вы имеете в виду сферу, а не круг) и линию, то проверьте, меньше ли это расстояние, чем радиус.
Точка столкновения, очевидно, является ближайшей точкой между линией и сферой (которая будет вычисляться при вычислении расстояния между сферой и линией)
Расстояние между точкой и line: http://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html
Не перебирайте все записи в контейнере адресной книги - некоторые контейнеры GAL могут содержать более 100 000 записей. Используйте Namespace.CreateRecipient
/ Recipient.Resolve
. Это будет иметь такой же эффект, как и ввод имени в поле «Кому» в Outlook и нажатие Ctrl + K для его устранения. После того, как у вас есть разрешенный объект получателя, вызовите Recipient.AddressEntry.GetExchangeUser().Department.
Будьте готовы обработать ошибки и AddressEntry.GetExchangeUser()
, возвращающие null.