Как сохранить ключи/значения в том же порядке, как объявлено?

Одно из решений, которые работавший меня прекрасный использовал WebDeploymentProject. У меня были 2/3 различные web.config файлы в моем сайте, и на публикуют, в зависимости от выбранного режима конфигурации (выпускать/подготавливать/и т.д....), я скопировал бы по сети. Release.config и переименовывают его к web.config в событии AfterBuild и удаляют тех, мне не нужно (сеть. Staging.config, например).

<Target Name="AfterBuild">
    <!--Web.config -->
    <Copy Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " SourceFiles="$(SourceWebPhysicalPath)\Web.Release.config" DestinationFiles="$(OutputPath)\Web.config" />
    <Copy Condition=" '$(Configuration)|$(Platform)' == 'Staging|AnyCPU' " SourceFiles="$(SourceWebPhysicalPath)\Web.Staging.config" DestinationFiles="$(OutputPath)\Web.config" />
    <!--Delete extra files -->
    <Delete Files="$(OutputPath)\Web.Release.config" />
    <Delete Files="$(OutputPath)\Web.Staging.config" />
    <Delete Files="@(ProjFiles)" />
  </Target>
291
задан Flimzy 29 May 2019 в 02:55
поделиться

2 ответа

Словаря будет использовать порядок, который делает поиск эффективным, и вы не можете это изменить,

Вы можете просто использовать список объектов (двухэлементный кортеж в простом случае или даже класс) и добавить элементы в конец. Затем вы можете использовать линейный поиск, чтобы найти в нем элементы.

В качестве альтернативы вы можете создать или использовать другую структуру данных, созданную с целью поддержания порядка.

12
ответ дан 23 November 2019 в 01:41
поделиться

Как правило, вы можете разработать класс, который ведет себя как словарь, в основном реализуя методы __ contains __ , __ getitem __ , __ delitem __ , __ setitem __ и другие. Этот класс может вести себя как угодно, например, назначать отсортированный итератор по ключам ...

1
ответ дан 23 November 2019 в 01:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: