/// <summary> /// リストの全要素を設定します。 /// </summary> public static void SetAll <T>(this Original.IList <T> list, T value) { for (int i = 0; i < list.Count; ++i) { list[i] = value; } }
/// <summary> /// リストの指定要素を交換します /// </summary> public static void Swap <T>(this Original.IList <T> list, int indexA, int indexB) { T tmp = list[indexA]; list[indexA] = list[indexB]; list[indexB] = tmp; }
/// <summary> /// 指定したインデックス位置の項目を削除し、削除された項目を返します。 /// </summary> public static T Pop <T>(this Original.IList <T> list, int index) { var item = list[index]; list.RemoveAt(index); return(item); }
/// <summary> /// リストの要素をランダムに並び替える /// </summary> public static void Shuffle <T>(this Original.IList <T> list, Random random = null) { for (int indexA = 0; indexA < list.Count; ++indexA) { int indexB = list.RandomIndex(random); list.Swap(indexA, indexB); } }
/// <summary> /// 指定した要素が最後の要素と同じか判定します。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> public static bool EqualsLast <T>(this Original.IList <T> list, T item) { return(list.GetLast().Equals(item)); }
/// <summary> /// 最後の要素を削除 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> public static void RemoveLast <T>(this Original.IList <T> list) { list.RemoveAt(list.Count - 1); }
/// <summary> /// 最後の要素を取得 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> public static T GetLast <T>(this Original.IList <T> list) { return(list[list.Count - 1]); }
/// <summary> /// ランダムなindexを返します。 /// </summary> public static int RandomIndex <T>(this Original.IList <T> list) { return(list.RandomIndex(new Random())); }
/// <summary> /// ランダムなindexを返します。 /// </summary> public static int RandomIndex <T>(this Original.IList <T> list, Random random) { return(random.Next(list.Count)); }
/// <summary> /// ランダムな位置の項目を削除し、削除された項目を返します。 /// </summary> public static T PopRandom <T>(this Original.IList <T> list, Random random = null) { var index = list.RandomIndex(random); return(list.Pop(index)); }