private static int FindIndex(IValueContainer container, string nameToFind, int startIndex) { var count = container.GetCount(); if (startIndex < 0 || startIndex >= count) { startIndex = 0; } for (var i = startIndex; i < count; i++) { var name = container.GetName(i); if (string.Equals(name, nameToFind, StringComparison.Ordinal)) { return(i); } } for (var i = 0; i < startIndex; i++) { var name = container.GetName(i); if (string.Equals(name, nameToFind, StringComparison.Ordinal)) { return(i); } } return(-1); }
public static IValueContainer Clone(this IValueContainer container) { var copy = new ValueContainer(); var valueCount = container.GetCount(); for (var i = 0; i < valueCount; i++) { copy.Add(container.GetName(i), container.GetType(i), container.GetValue(i)); } return(copy); }
private void SerializeValueContainer(IValueContainer valueContainer, IValueWriter writer) { var valueCount = valueContainer.GetCount(); for (var i = 0; i < valueCount; i++) { var name = valueContainer.GetName(i); var type = valueContainer.GetType(i); var value = valueContainer.GetValue(i); SerializeValue(name, type, value, writer); } }
public void Read(IObjectReconstructor reconstructor, ISerializer serializer) { var count = _container.GetCount(); for (var i = 0; i < count; i++) { var valueInfo = new ValueInfo { Name = _container.GetName(i), Type = _container.GetType(i).ToTypeSerializationInfo(), }; reconstructor.OnValueStart(valueInfo); reconstructor.OnValue(_container.GetValue(i)); reconstructor.OnValueEnd(); } }
public static void CopyTo(this IValueContainer source, IValueContainer target) { if (source == null || target == null || source.GetCount() == 0 || target.GetCount() == 0) { return; } var sourceValues = source.ToEnumerable().ToDictionary(v => v.Name); int targetCount = target.GetCount(); for (var i = 0; i < targetCount; i++) { var name = target.GetName(i); if (!sourceValues.TryGetValue(name, out var v) || v.Type != target.GetType(i)) { continue; } target.SetValue(i, v.Value); } }
public string GetName(int index) => _impl.GetName(index);
public string GetName(int index) => _valuesProxy.GetName(index);
public string GetName(int index) => _keysProxy.GetName(index);