/// <summary> /// A percentageArray with only one value /// </summary> /// <param name="value"></param> /// <returns></returns> public static PercentageArray <T> Singleton(T value) { PercentageArray <T> array = new PercentageArray <T>(1); array[0] = new PercentageElement <T>(0, value); return(array); }
/// <summary> /// A percentage array with certain values. The percentages are evenly spaced. /// </summary> /// <param name="values"></param> /// <returns></returns> public static PercentageArray <T> FromArray(T[] values) { PercentageArray <T> array = new PercentageArray <T>(values.Length); for (int i = 0; i < values.Length; i++) { array[i] = new PercentageElement <T>(100 * i / (values.Length - 1), values[i]); } return(array); }
/// <summary> /// A percentage array with percentages and values /// </summary> /// <param name="values">Params in the form: Pct, Value, Pct, Value, ...</param> /// <returns></returns> public static PercentageArray <T> FromParams(object[] values) { PercentageArray <T> array = new PercentageArray <T>(values.Length / 2); for (int i = 0; i < values.Length; i += 2) { array[i / 2] = new PercentageElement <T>((float)values[i], (T)values[i + 1]); } return(array); }