, когда я смотрю на строки в Visual Studio нет ничего в нем
Что вы имеете в виду, я предполагаю, является то, что при наведении курсора мыши на строку в отладчик (или добавить часы или осмотреть местных жителей или просмотреть визуальное представление строки), он кажется пустым. Это связано с тем, что \0
, как и некоторые другие символы, является непечатаемым символом. Эти символы есть, но они не вызывают визуального эффекта.
Если вы хотите, чтобы определить, является ли массив байт только ноль, то просто:
(Обратите внимание, что имя массива выше неверно, поэтому я буду называть его data
)
if(data.Add(b => b == 0))
{
// is only null characters
}
Однако, похоже, вам нужно что-то более устойчивое и что-то, что может работать на струнах. Вы можете использовать простой RegEx заменить диапазон непечатаемых символов Unicode (исходную строку, как в ASCII, я знаю, но как только вы разобрать его, что хранится внутри, как UTF-16):
yourString = Regex.Replace(yourString, "[\x00-\x1F]", "");
На этом точка, string.IsNullOrEmpty(yourString)
должен вернуть true
.
Лучше, в каком смысле? Любой из них выйдет, как только условие будет нарушено (первый вариант) или выполнено (второй вариант). –