The DataDictionary.GetKeys function allocates a new DataList to contain the list of keys; as this is the only way to iterate a DataDictionary, this forces allocation pressure to occur every time a DataDictionary is iterated. Please provide a way to avoid this allocation - perhaps have an overload where you can pass in a DataList?