Насколько я понял, вы хотите отфильтровать ваш XML перед сериализацией.
Я предлагаю вам использовать LINQ
для этого:
var filteredMaps = Maps.Where(map => !string.IsNullOrWhiteSpace(map.Item)).ToList();
Обратите внимание на вызов .ToList()
в конце строки. Это важно, так как ваш XmlSerializer
имеет тип List<Map>
, я полагаю. Поместите эту строку перед сериализацией объекта, и результат должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Map item="something" uri="foo" />
</ArrayOfMap>
Не забывайте using System.Linq;
Этот вопрос был решен в Подвижных 1.1! Из информации о версии: "Улучшенная правильность перед лицом casefolding файловых систем".
В Windows, Подвижном теперь, игнорирует регистр в его параметрах командной строки:
>hg status -A foo
C foo
>hg status -A FOO
C foo
И это также знает, что изменения имени файла, которые только включают случай, не являются новыми файлами:
>ren foo FOO
>hg status -A fOO
C foo
Таким образом больше нет никакого риска пропуска изменений из-за опечаток на командной строке.
Однако знайте, что содержание .hgignore файла остается чувствительным к регистру. Это - проблема, только если Вы используете синтаксис шарика; с regexp синтаксисом можно ли поместить (? i) в начале шаблонов для создания их нечувствительными.
Я думаю, что Вы неправильно читаете hgbook. Введение для разделения 7.7 просто описывает три различных типов чувствительности к регистру, которые существуют в OSs, не говоря, что подвижный зеркально отразит их семантика.
Позже в разделе 7.7.2 'Случаев обнаружения конфликтуют', он говорит:
При работе в рабочем каталоге, Подвижные почести политика именования файловой системы, где рабочий каталог расположен. Если файловая система является сохранением случая, но нечувствительный, Подвижный будет рассматривать имена, которые отличаются только в случае, если как то же.
Когда Вы делаете hg status -A FOO
процесс это происходит в подвижном:
Для лучше наблюдения подвижный не забота о случае на NTFS пробуют эти шаги:
и необходимо видеть, что hg говорит, что ничто не изменилось, потому что единственная вещь, которая изменилась, имеет место, который hg игнорирует для Вас.
Когда я делаю то же самое на Linux, я вместо этого вижу:
! Foo
? FOO