/// </summary>
internal sealed class EventPayload : IDictionary<string, object?>
{
- internal EventPayload(List<string> payloadNames, List<object?> payloadValues)
+ internal EventPayload(string[] payloadNames, object?[] payloadValues)
{
- Debug.Assert(payloadNames.Count == payloadValues.Count);
+ Debug.Assert(payloadNames.Length == payloadValues.Length);
m_names = payloadNames;
m_values = payloadValues;
return false;
}
- public int Count => m_names.Count;
+ public int Count => m_names.Length;
public bool IsReadOnly => true;
}
#region private
- private readonly List<string> m_names;
- private readonly List<object?> m_values;
+ private readonly string[] m_names;
+ private readonly object?[] m_values;
#endregion
}
}
{
if (this.properties != null)
{
- var membersNames = new List<string>();
- var membersValues = new List<object?>();
+ var membersNames = new string[this.properties.Length];
+ var membersValues = new object?[this.properties.Length];
for (int i = 0; i < this.properties.Length; i++)
{
object? propertyValue = properties[i].propertyInfo.GetValue(value);
- membersNames.Add(properties[i].name);
- membersValues.Add(properties[i].typeInfo.GetData(propertyValue));
+ membersNames[i] = properties[i].name;
+ membersValues[i] = properties[i].typeInfo.GetData(propertyValue);
}
return new EventPayload(membersNames, membersValues);
}