У меня есть требование, когда я хотел бы использовать словарь для хранения пар «ключ = значение», однако теперь мне нужно хранить «повторяющиеся» значения ключей.Изменение дубликата Значение ключа при вводе в словарь (C#)
У меня есть строка с разделителями текста (с разделителями с характером трубы («|»), который я раскололась в массив, а затем в словаре (см ниже)
string[] t = rawMessage.Split(new[] { '|', '|' }, StringSplitOptions.RemoveEmptyEntries);
message = t.ToDictionary(s => s.Split('=')[0], s => s.Split('=')[1]);
Это прекрасно работает, если нет дубликаты существуют, но я хочу, чтобы хранить дубликаты ключей в пути, который регулирует значение ключа перед вставкой.
примера
A=1|B=2|C=3|D=4|D=5|D=5
Я хочу, чтобы ключевое значение быть отрегулировано на что-то Лик e:
A=1
B=2
C=3
D=4
D[1]=5
D[2]=5
Таким образом, я могу вытащить запись 2-й и 3-й «D» записей, так как они имеют новое значение ключа.
Каждый дубликат является уникальной записью, поэтому я хотел бы иметь возможность ссылаться тогда в том порядке, в котором они были введены. четвертая запись будет, например, D [4]. Предложение об использовании одного и того же ключевого значения для всех значений может/будет запутывающим, и я могу в конечном итоге вытащить неправильную информацию (но помните об этом).
Я хотел бы избежать необходимости заранее прокручивать массив, и задался вопросом, знает ли кто-нибудь, как я могу выполнить это на части ToDictionary вышеприведенного кода.
Извинения за довольно простое объяснение. Многие из тем касаются удаления дубликатов в словарях, и я понимаю, что это не подразумевается использование словаря.
Вы должны разработать собственную структуру данных, чтобы следить за дубликатами. Или сделайте то, что сказал @ itsme86. Но это зависит от того, как вы хотите получить эту информацию. –
Как потребители вашего словаря знают, хотят ли они первый ключ «D» или второй? – Quantic
Quantic - первая запись будет D, вторая D [1], третья D [2] и так далее. Формат «[]» - это просто уникальная вставка ключа. Затем они будут вводить ключ, который они хотели бы видеть. – Arclight