internal Enumerator(DateTimeCollection list) { Contract.Requires(list != null); this.m_List = list; this.m_Version = list.m_Version; this.m_Index = -1; this.m_Current = DateTime.MinValue; }
//internal DateTime Internal_GetItem(int i) //{ // return this.m_Collection[i]; //} /// <summary> /// Выполняет синтаксический рабор строки <paramref name="source"/>, извлекая коллекцию дат /// </summary> /// <param name="source">Исходная строка</param> /// <returns>Коллекция дат</returns> public static DateTimeCollection Parse(string source) { var res = new DateTimeCollection(); if (!string.IsNullOrWhiteSpace(source)) { foreach (var str in source.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { DateTime dt = DateTime.ParseExact(str.Trim(), c_DefaultParseFormat, CultureInfo.InvariantCulture); res.Add(dt); } } return(res); }
/// <summary> /// Формирует коллекцию дат на основе заданной строки <paramref name="value"/> /// </summary> /// <param name="context">Контекст дескриптора</param> /// <param name="culture">Используемая культура</param> /// <param name="value">Исходная строка</param> /// <returns>Коллекция дат</returns> public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value == null) { throw GetConvertFromException(null); } var source = value as string; if (source != null) { return(DateTimeCollection.Parse(source)); } return(base.ConvertFrom(context, culture, value)); }
/// <summary> /// Формирует коллекцию дат на основе заданной строки <paramref name="value"/> /// либо генерирует <see cref="NotSupportedException"/> или <see cref="FormatException"/>, если это невозможно /// </summary> /// <param name="value">Исходная строка</param> /// <param name="context">Контекст сериализации</param> /// <returns>Коллекция дат</returns> public override object ConvertFromString(string value, IValueSerializerContext context) { return(DateTimeCollection.Parse(value)); }