public void Insert(int index, CustomLabel value)
		{
			Insert(index, (object)value);
		}
		public void Remove(CustomLabel value)
		{
			array.Remove(value);
			Invalidate();
		}
		public bool Contains(CustomLabel value)
		{
			return array.Contains(value);
		}
		public int IndexOf(CustomLabel value)
		{
			return array.IndexOf(value);
		}
		public void Add(double labelsStep, DateTimeIntervalType intervalType, double min, double max, string format, int rowIndex, LabelMark mark)
		{
			if (min == 0.0 && max == 0.0 && axis != null && !double.IsNaN(axis.Minimum) && !double.IsNaN(axis.Maximum))
			{
				min = axis.Minimum;
				max = axis.Maximum;
			}
			double num = Math.Min(min, max);
			double num2 = Math.Max(min, max);
			double num3 = num;
			double num4 = 0.0;
			while (num3 < num2)
			{
				switch (intervalType)
				{
				case DateTimeIntervalType.Number:
					num4 = num3 + labelsStep;
					break;
				case DateTimeIntervalType.Milliseconds:
					num4 = DateTime.FromOADate(num3).AddMilliseconds(labelsStep).ToOADate();
					break;
				case DateTimeIntervalType.Seconds:
					num4 = DateTime.FromOADate(num3).AddSeconds(labelsStep).ToOADate();
					break;
				case DateTimeIntervalType.Minutes:
					num4 = DateTime.FromOADate(num3).AddMinutes(labelsStep).ToOADate();
					break;
				case DateTimeIntervalType.Hours:
					num4 = DateTime.FromOADate(num3).AddHours(labelsStep).ToOADate();
					break;
				case DateTimeIntervalType.Days:
					num4 = DateTime.FromOADate(num3).AddDays(labelsStep).ToOADate();
					break;
				case DateTimeIntervalType.Weeks:
					num4 = DateTime.FromOADate(num3).AddDays(7.0 * labelsStep).ToOADate();
					break;
				case DateTimeIntervalType.Months:
					num4 = DateTime.FromOADate(num3).AddMonths((int)labelsStep).ToOADate();
					break;
				case DateTimeIntervalType.Years:
					num4 = DateTime.FromOADate(num3).AddYears((int)labelsStep).ToOADate();
					break;
				default:
					throw new ArgumentException(SR.ExceptionAxisLabelsIntervalTypeUnsupported(intervalType.ToString()));
				}
				if (num4 > num2)
				{
					num4 = num2;
				}
				ChartValueTypes valueType = ChartValueTypes.Double;
				if (intervalType != DateTimeIntervalType.Number)
				{
					valueType = ((axis.GetAxisValuesType() != ChartValueTypes.DateTimeOffset) ? ChartValueTypes.DateTime : ChartValueTypes.DateTimeOffset);
				}
				string text = ValueConverter.FormatValue(axis.chart, axis, num3 + (num4 - num3) / 2.0, format, valueType, ChartElementType.AxisLabels);
				CustomLabel customLabel = new CustomLabel(num3, num4, text, rowIndex, mark);
				customLabel.axis = axis;
				array.Add(customLabel);
				num3 = num4;
			}
			Invalidate();
		}