В моем приложении я получаю описание, зарегистрированное из Active Directory, а затем назначая его строке, поэтому я могу позже проверить эту строку для «Контракт», чтобы игнорировать этих пользователей.
Проблема не у всех пользователей есть значение в поле описания, которое приводит к выбросу Null Reference Exception
. Единственный способ, с помощью которого я могу думать об этом, - добавить еще одну проверку с помощью String.IsNullOrEmpty
и добавить значение temp, а затем удалить это временное значение. Это кажется громоздким и неправильным.Использование String.Contains в строке значения Null
Что мне нужно сделать, чтобы иметь дело с null
в строке во время моей проверки? Я попытался следующие два набора кода, как бросить ошибку:
var userDescription = (string)userDirectoryData.Properties["description"].Value;
if (userDescription.Contains("Contracted"))
{
continue;
}
else
{
//Do Stuff here
}
И
var userDescription = (string)userDirectoryData.Properties["description"].Value;
if (userDescription.IndexOf("Contracted") > -1)
{
continue;
}
else
{
//Do Stuff here
}
EDIT: По https://msdn.microsoft.com/en-us/library/k8b1470s.aspx я не могу установить в String.Empty, как будет возвращать результат «0», вызывающий ложное положительное, описание содержит только «Контракт».
Не уверен, что вы подразумеваете под «добавлением временного значения», но использование 'String.IsNullOrEmpty' (или' String.IsNullOrWhitespace') было бы совершенно нормальным здесь. –
И в чем разница между этими двумя данными фрагментами? –
'if (userDescription! = Null && userDescription.IndexOf (« Contracted »)> -1)' – Magnus