Коллекции¶
Коллекции поддерживаются языком Protobuf в виде списков и словарей.
Списки¶
Задаются при помощи ключевого слова repeated:
В сгенерированном коде поле получает тип (для примера выше)
RepeatedField<int> из сборки Google.Protobuf. Тип RepeatedField<T> реализует такие интерфейсы как IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IList, ICollection, IEquatable<RepeatedField<T>>, IReadOnlyList<T> и IReadOnlyCollection<T>, а также ещё один интерфейс из Google.Protobuf — IDeepCloneable<RepeatedField<T>>.
Словари¶
Словарь задаётся при помощи конструкции map<TKey, TValue>, и в сгенерированном коде превращается в MapField. В примере зададим словарь с int32 в качестве типа ключа и string в качестве типа значения:
MapField<TKey, TValue> реализует IDictionary<TKey, TValue>, а также, как и многие другие, IEquatable<MapField<TKey, TValue>> и IDeepCloneable<TKey, TValue>>.
Последнее обновление :
23 апреля 2023 г.
Дата создания : 6 апреля 2023 г.
Дата создания : 6 апреля 2023 г.