namespace AtlasUtility { using System; using System.Collections.Generic; public static class ExtList { public static T Back(this List list, int index, bool remove = false) { T t = list[list.Count - 1 - index]; if (remove) { list.RemoveAt(list.Count - 1 - index); } return t; } public static void MySort(this List list, Func func) { bool finish = false; for (int i = 0; i < list.Count; i++) { finish = true; for (int j = 0; j < list.Count - i - 1; j++) { if (func(list[j], list[j + 1])) { finish = false; T t = list[j]; list[j] = list[j + 1]; list[j + 1] = t; } } if (finish) { break; } } } public static float MyMax(this List list, Func func) { float result = func(list[0]); for (int i = 1; i < list.Count; i++) { if (result < func(list[i])) { result = func(list[i]); } } return result; } public static float MySum(this List list, Func func) { float result = 0; for (int i = 0; i < list.Count; i++) { result += func(list[i]); } return result; } } }