# KeyValueCollectionPropertyBag<TDictionary, TKey, TValue>

> An IPropertyBag<TContainer> implementation for a generic collection of key/value pairs using the IDictionary_2 interface.

## Definition

* **Type:** Class
* **Namespace:** [Unity.Properties](/engine/6000.6/script-reference/unity/properties.md)
* **Assembly:** UnityEngine.PropertiesModule
* **Inherits from:** [PropertyBag\<T>](/engine/6000.6/script-reference/unity/properties/propertybag1.md)
* **Implements:** [IDictionaryPropertyBag\<T, T, T>](/engine/6000.6/script-reference/unity/properties/idictionarypropertybag3.md), ICollectionPropertyBag\<T, KeyValuePair\<T, T>>, [IPropertyBag\<T>](/engine/6000.6/script-reference/unity/properties/ipropertybag1.md), [IPropertyBag](/engine/6000.6/script-reference/unity/properties/ipropertybag.md), [ICollectionPropertyBagAccept\<T>](/engine/6000.6/script-reference/unity/properties/icollectionpropertybagaccept1.md), [IDictionaryPropertyBagAccept\<T>](/engine/6000.6/script-reference/unity/properties/idictionarypropertybagaccept1.md), [IDictionaryPropertyAccept\<T>](/engine/6000.6/script-reference/unity/properties/idictionarypropertyaccept1.md), [IKeyedProperties\<T, Object>](/engine/6000.6/script-reference/unity/properties/ikeyedproperties2.md)

```csharp
public class KeyValueCollectionPropertyBag<TDictionary, TKey, TValue> : PropertyBag<TDictionary>, IDictionaryPropertyBag<TDictionary, TKey, TValue>, ICollectionPropertyBag<TDictionary, KeyValuePair<TKey, TValue>>, IPropertyBag<TDictionary>, IPropertyBag, ICollectionPropertyBagAccept<TDictionary>, IDictionaryPropertyBagAccept<TDictionary>, IDictionaryPropertyAccept<TDictionary>, IKeyedProperties<TDictionary, object> where TDictionary : IDictionary<TKey, TValue>
```

## Inheritance

**Inherited Members:**

* [PropertyBag\<T>.Accept(ITypeVisitor)](/engine/6000.6/script-reference/unity/properties/propertybag1/accept.md)
* [PropertyBag\<T>.GetProperties()](/engine/6000.6/script-reference/unity/properties/propertybag1/getproperties.md)
* [PropertyBag\<T>.GetProperties(T)](/engine/6000.6/script-reference/unity/properties/propertybag1/getproperties.md)
* [PropertyBag\<T>.Instantiate()](/engine/6000.6/script-reference/unity/properties/propertybag1/instantiate.md)
* [PropertyBag\<T>.CreateInstance()](/engine/6000.6/script-reference/unity/properties/propertybag1/createinstance.md)
* [PropertyBag\<T>.TryCreateInstance(T)](/engine/6000.6/script-reference/unity/properties/propertybag1/trycreateinstance.md)
* [PropertyBag\<T>.InstantiationKind()](/engine/6000.6/script-reference/unity/properties/propertybag1/instantiationkind.md)
