Основано на комментариях:
Джульетта: Мне кажется, что ты
злоупотребляя словарем. Почему ты
нужна строка [] в качестве ключа? какой
неправильно с использованием "еды и питья" в качестве
ключ?
ОП: Я создаю набор вложенных
страницы в CMS, перебирая
страницы словаря "Еда и напитки"
часть будет использоваться в качестве отображаемого имени
для страницы в качестве CMS (Sitecore)
не позволяет определенные символы в
Имена предметов В противном случае при создании
страницы, которые я должен был бы сделать, если страница
имя == х отображаемое имя = у, которое я
не хочу делать
У вас архитектурная проблема, и ключ с массивом строк - определенно неправильный способ ее решения. Никогда не используйте string[]
или object[]
для специальных групп данных, вместо этого создайте класс.
Кроме того, если ваш словарь основан на одном фрагменте данных, то включите его в один фрагмент данных. Все остальные части данных должны храниться в вашем значении.
Итак, начнем с этого:
public class Page
{
public readonly string PageTitle;
public readonly StringBuilder Content;
public Page(string pageTitle)
{
this.PageTitle = pageTitle;
this.Content = new StringBuilder();
}
}
И используйте это так:
var pages = new Dictionary<string, Page>()
{
{ "food-and-drink", new Page("Food & Drink") },
{ "activities-and-entertainment", new Page("Activities & Entertainment")
};
foreach (var obj in myCollection)
{
pages[obj.Page].Content.Append(obj.PageValue);
}
Скорее всего, это не идеальный подход к тому, что вы на самом деле пытаетесь сделать, но я думаю, что это шаг вперед от странности хранения составных данных в качестве ключа словаря. *