public void AddVertex(LineAAVertex val) { int count = _list.Count; if (count > 1) { LineAAVertex[] innerArray = _list.UnsafeInternalArray; if (!innerArray[count - 2].IsDiff(innerArray[count - 1])) { _list.RemoveLast(); } } _list.Append(val); }
public void AddVertex(LineAAVertex val) { int count = list.Count; if (count > 1) { var innerArray = list.Array; if (!innerArray[count - 2].IsDiff(innerArray[count - 1])) { list.RemoveLast(); } } list.AddVertex(val); }
/// <summary> /// Randomly selects a sound from the list and returns the results. /// </summary> /// <returns></returns> public FileInfo GetRandomSound() { // Ignore empty lists if (Count == 0) { throw new Exception(Name + "No music to play!"); } // See if the recently played list is too big if (recentlyPlayed.Count > RecentlyPlayedSize) { // Remove the last one recentlyPlayed.RemoveLast(); } // Randomly select one while (true) { // Select a random sound int index = Entropy.Next(0, Count); FileInfo sound = this[index]; // See if we are in the list if (!recentlyPlayed.Contains(sound)) { // We aren't in the recently played recentlyPlayed.InsertFirst(sound); return(sound); } } }
// Event patterns on indexed collections public static void IndexedCollectionEvents() { IList <int> coll = new ArrayList <int>(); ICollection <int> bag = new HashBag <int>(); bag.AddAll(new[] { 3, 2, 5, 5, 7, 7, 5, 3, 7, 7 }); // Add item inserted handler coll.ItemInserted += delegate(Object c, ItemAtEventArgs <int> args) { Console.WriteLine("Item {0} inserted at {1}", args.Item, args.Index); }; coll.InsertAll(0, bag); // Add item removed-at handler coll.ItemRemovedAt += delegate(Object c, ItemAtEventArgs <int> args) { Console.WriteLine("Item {0} removed at {1}", args.Item, args.Index); }; coll.RemoveLast(); coll.RemoveFirst(); coll.RemoveAt(1); }
private void RandomBoardLayout(SCG.IEnumerable <Tile> tiles, SCG.IEnumerable <HexTile> hexes, int x1, int y1, int x2, int y2, int maxd1, int maxd2) { IList <HexTile> hexRandom = new ArrayList <HexTile>(); hexRandom.AddAll(from hex in hexes orderby RNG.Next() select hex); foreach (var t in tiles) { var d1 = this.tiles[x1][y1].DistanceTo(t); var d2 = this.tiles[x2][y2].DistanceTo(t); if (d1 == maxd1 && d2 >= maxd2 + 1 || d1 >= maxd1 + 1 && d2 == maxd2 || d1 == maxd1 + 1 && d2 == maxd2 + 1) { t.HexTile = new OceanHexTile(); } else if (d1 <= maxd1 && d2 <= maxd2) { if (hexRandom.Count == 0) { t.HexTile = new DesertHexTile(""); } else { t.HexTile = hexRandom.RemoveLast(); } } else { t.HexTile = null; } } }
// удаление из конца public void RemoveLastTest(int expectedNumber, int actualNumber) { ArrayList expected = GetListMockRemovedLast(expectedNumber); ArrayList actual = GetListMock(actualNumber); actual.RemoveLast(); Assert.AreEqual(expected, actual); }
public void RemoveLast() { list.Add(4); list.Add(56); list.Add(8); listen(); list.RemoveLast(); seen.Check(new CollectionEvent <int>[] { new CollectionEvent <int>(EventType.RemovedAt, new ItemAtEventArgs <int>(8, 2), guarded), new CollectionEvent <int>(EventType.Removed, new ItemCountEventArgs <int>(8, 1), guarded), new CollectionEvent <int>(EventType.Changed, new EventArgs(), guarded) }); }
public void RemoveLastTest(int[] array, int[] arrayExpected) { ArrayList arrayList = new ArrayList(array); arrayList.RemoveLast(); ArrayList actual = arrayList; ArrayList expected = new ArrayList(arrayExpected); Assert.AreEqual(expected, actual); }
// Select N random items from list, without replacement. // Faster when list is efficiently indexable and modifiable. // Modifies the given list. public static SCG.IEnumerable <T> RandomWithout2 <T>(ArrayList <T> list, int N) { for (int i = N; i > 0; i--) { int j = rnd.Next(list.Count); T x = list[j], replacement = list.RemoveLast(); if (j < list.Count) { list[j] = replacement; } yield return(x); } }
private void RandomChitLayout(SCG.IEnumerable <Tile> tiles, SCG.IEnumerable <ProductionChit> chits) { foreach (var t in AllTiles) { t.Chits.Clear(); } IList <ProductionChit> chitRandom = new ArrayList <ProductionChit>(); chitRandom.AddAll(from chit in chits orderby RNG.Next() select chit); foreach (Tile h in (from t in tiles where t.HexTile != null && t.HexTile.IsLand && t.HexTile.TileType != Core.TileType.Desert select t)) { h.Chits.Add(chitRandom.RemoveLast()); } }
// Select N random items from list, without replacement. // Faster when list is efficiently indexable and modifiable. // Modifies the given list. public static SCG.IEnumerable <T> RandomWithout2 <T>(ArrayList <T> list, int N) { for (var i = N; i > 0; i--) { var j = _random.Next(list.Count); var x = list[j]; var replacement = list.RemoveLast(); if (j < list.Count) { list[j] = replacement; } yield return(x); } }
// Event patterns on indexed collections public static void IndexedCollectionEvents() { var coll = new ArrayList <int>(); var bag = new HashBag <int>(); bag.AddAll(new[] { 3, 2, 5, 5, 7, 7, 5, 3, 7, 7 }); // Add item inserted handler coll.ItemInserted += (o, args) => Console.WriteLine($"Item {args.Item} inserted at {args.Index}"); coll.InsertAll(0, bag); // Add item removed-at handler coll.ItemRemovedAt += (o, args) => Console.WriteLine($"Item {args.Item} removed at {args.Index}"); coll.RemoveLast(); coll.RemoveFirst(); coll.RemoveAt(1); }
public void Main() { // Construct list using collection initializer var list = new ArrayList <int> { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47 }; // Get index of item var index = list.IndexOf(23); // Get an index range var range = list.GetIndexRange(index, 4); // Print range in reverse order foreach (var prime in range.Backwards()) { Console.WriteLine(prime); } // Remove items within index range list.RemoveIndexRange(10, 3); // Remove item at index var second = list.RemoveAt(1); // Remove first item var first = list.RemoveFirst(); // Remove last item var last = list.RemoveLast(); // Create array with items in list var array = list.ToArray(); // Clear list list.Clear(); // Check if list is empty var isEmpty = list.IsEmpty; // Add item list.Add(first); // Add items from enumerable list.AddRange(array); // Insert item into list list.Insert(1, second); // Add item to the end list.Add(last); // Check if list is sorted var isSorted = list.IsSorted(); // Reverse list list.Reverse(); // Check if list is sorted var reverseComparer = ComparerFactory.CreateComparer <int>((x, y) => y.CompareTo(x)); isSorted = list.IsSorted(reverseComparer); // Shuffle list var random = new Random(0); list.Shuffle(random); // Print list using indexer for (var i = 0; i < list.Count; i++) { Console.WriteLine($"{i,2}: {list[i],2}"); } // Check if list contains all items in enumerable var containsRange = list.ContainsRange(array); // Construct list using enumerable var otherList = new ArrayList <int>(array); // Add every third items from list otherList.AddRange(list.Where((x, i) => i % 3 == 0)); containsRange = list.ContainsRange(otherList); // Remove all items not in enumerable otherList.RetainRange(list); // Remove all items in enumerable from list list.RemoveRange(array); // Sort list list.Sort(); // Copy to array list.CopyTo(array, 2); return; }
public static void Main() { //var eq = new C6.ComparerFactory.EqualityComparer<string>(ReferenceEquals, // SCG.EqualityComparer<string>.Default.GetHashCode); //var items = new[] { "-8", "Ab", "6", "-4", "5", "-2", "-1", "1", "10", "8" }; //var al = new ArrayList<string>(items); //var v1 = al.View(al.Count - 2, 2); //var v2 = al.View(al.Count - 2, 2); var items = new[] { "-8", "Ab", "6", "-4", "5", "-2", "-1", "1", "10", "8" }; var collection = new HashedArrayList <string>(items); Console.WriteLine(collection.Contains("10")); Console.WriteLine(collection.Add("10")); // BUG: Sorting //var items = new[] { "-8", "Ab", "6", "-4", "5", "-2", "-1", "1", "10", "8" }; //var collection = new HashedLinkedList<string>(items); //var v0 = collection.View(0, 2); //var v2 = collection.View(1, 2); //var v4 = collection.View(4, 2); //var v6 = collection.View(7, 1); //var vCount2 = collection.View(collection.Count - 2, 2); //Console.WriteLine("Views before calling Sort()"); //Console.WriteLine($"v0 = {v0}"); //Console.WriteLine($"v2 = {v2}"); //Console.WriteLine($"v4 = {v4}"); //Console.WriteLine($"v6 = {v6}"); //Console.WriteLine($"vCount2 = {vCount2}"); //v4.Sort(); //Console.WriteLine("Views after calling Sort()"); //Console.WriteLine($"v0 = {v0}"); //Console.WriteLine($"v2 = {v2}"); //Console.WriteLine($"v4 = {v4}"); //Console.WriteLine($"v6 = {v6}"); //Console.WriteLine($"vCount2 = {vCount2}"); // ============================== // RemoveRange //var items = new[] { "8", "Ab", "3", "4", "5", "6", "7", "9" }; //var collection = new ArrayList<string>(items); //var view1 = collection.View(0, 1); // longer //var view2 = collection.View(0, 2); //var item = view1.Choose(); //var itms = new ArrayList<string>(new[] { item }); //view1.RemoveRange(itms); //Console.WriteLine(view2); //var items = new[] { "8", "Ab", "3", "4", "5", "6", "7", "9" }; // HLL.Reverse //var items = new[] { "a", "b", "c", "d", "e" }; //var linkedList = new ArrayList<string>(items); //var v1 = linkedList.View(0, linkedList.Count); //var v2 = linkedList.View(0, 2); //v1.Reverse(); //v1.Reverse(); //Console.WriteLine(v2); // HLL.Sort //var items = new[] { "b", "a", "c", "e", "d" }; //var linkedList = new HashedLinkedList<string>(items); //var v1 = linkedList.View(0, 3); //var v2 = linkedList.View(3, 2); //v1.Sort(); //Console.WriteLine(v1); //Console.WriteLine(v2); // HAL.Add() //var items = new[] { "8", "Ab", "3", "4", "5", "6", "7", "9" }; //var arrayList = new LinkedList<string>(items); //var v1 = arrayList.View(0, 7); //var v2 = arrayList.View(0, 7); //v1.Add("333333333"); //Console.WriteLine(v1); //Console.WriteLine(v2); //Console.WriteLine(view1.IsValid); //Console.WriteLine(view); //Console.WriteLine(collection); return; // Construct list using collection initializer //var list = new ArrayList<int>() { 2, 3, 5, 5, 7, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33}; var list = new ArrayList <int>() { 2, 3 }; var backList = list.Backwards(); backList.ToList().ForEach(x => Console.Write(x + ", ")); Console.WriteLine(backList.IsValid); list.Add(10); Console.WriteLine(backList.IsValid); //backList.ToList().ForEach(x => Console.Write(x)); //var list = list1.View(2, list1.Count-2); //var v = list.View(3,4); //var v2 = v.View(1, 2); //var items = new ArrayList<int>() { 3, 13, 7, 17}; //Console.WriteLine(ArrayList<int>.EmptyArray); var dupl = list.FindDuplicates(5); Console.WriteLine(dupl); list.Add(-100); var arr = dupl.ToArray(); list.Dispose(); //en.ToList().ForEach(x => Console.WriteLine(x)); //Console.WriteLine(v); //Console.WriteLine(v2); //Console.WriteLine(list); return; // Get index of item var index = list.IndexOf(23); // Get an index range var range = list.GetIndexRange(index, 4); // Print range in reverse order foreach (var prime in range.Backwards()) { Console.WriteLine(prime); } // Remove items within index range list.RemoveIndexRange(10, 3); // Remove item at index var second = list.RemoveAt(1); // Remove first item var first = list.RemoveFirst(); // Remove last item var last = list.RemoveLast(); // Create array with items in list var array = list.ToArray(); // Clear list list.Clear(); // Check if list is empty var isEmpty = list.IsEmpty; // Add item list.Add(first); // Add items from enumerable list.AddRange(array); // Insert item into list list.Insert(1, second); // Add item to the end list.Add(last); // Check if list is sorted var isSorted = list.IsSorted(); // Reverse list list.Reverse(); // Check if list is sorted var reverseComparer = ComparerFactory.CreateComparer <int>((x, y) => y.CompareTo(x)); isSorted = list.IsSorted(reverseComparer); // Shuffle list var random = new Random(0); list.Shuffle(random); // Print list using indexer for (var i = 0; i < list.Count; i++) { Console.WriteLine($"{i,2}: {list[i],2}"); } // Check if list contains all items in enumerable var containsRange = list.ContainsRange(array); // Construct list using enumerable var otherList = new ArrayList <int>(array); // Add every third items from list otherList.AddRange(list.Where((x, i) => i % 3 == 0)); containsRange = list.ContainsRange(otherList); // Remove all items not in enumerable otherList.RetainRange(list); // Remove all items in enumerable from list list.RemoveRange(array); // Sort list list.Sort(); // Copy to array list.CopyTo(array, 2); return; }
private void RandomChitLayout(SCG.IEnumerable<Tile> tiles, SCG.IEnumerable<ProductionChit> chits) { foreach (var t in AllTiles) t.Chits.Clear(); IList<ProductionChit> chitRandom = new ArrayList<ProductionChit>(); chitRandom.AddAll(from chit in chits orderby RNG.Next() select chit); foreach (Tile h in (from t in tiles where t.HexTile != null && t.HexTile.IsLand && t.HexTile.TileType != Core.TileType.Desert select t)) { h.Chits.Add(chitRandom.RemoveLast()); } }
private void operatorClick(object sender, EventArgs e) { if (inputTextBox.Text.Length > 22) { return; } string text = ((Button)sender).Text; if (!isNumberLast) { if (text == "(") { if (elements.Count > 0 && (ONP.isOperator(elements.Last()) || elements.Last() == "(")) { if (inputTextBox.Text.LastChar() == ",") { return; } inputTextBox.Text += "("; elements.Add(text); } else if (inputTextBox.Text == "0") { inputTextBox.Text = "("; elements.Add(text); } } else if (inputTextBox.Text == "0") { if (text == "-") { elements.Add(text); inputTextBox.Text = text; } } else if (inputTextBox.Text.Contains("=")) { elements.Add(result); elements.Add(text); inputTextBox.Text = result + text; result = ""; } else if (ONP.isOperator(text)) { if (inputTextBox.Text.Length > 0 && elements.Last() == ")") { elements.Add(text); inputTextBox.Text += text; } else { if (inputTextBox.Text.Length > 1 && elements.Last() == "(") { return; } else { elements.RemoveLast(); elements.Add(text); inputTextBox.Text = inputTextBox.Text.RemoveLastChar(); inputTextBox.Text += text; } } } else if (text == ")" && isBracketNeeded()) { elements.Add(text); inputTextBox.Text += text; } } else { if (ONP.isOperator(text) || (text == ")" && isBracketNeeded())) { elements.Add(currentNumber); currentNumber = ""; isNumberLast = false; elements.Add(text); inputTextBox.Text += text; } } MRclicked = false; }
private void RandomBoardLayout(SCG.IEnumerable<Tile> tiles, SCG.IEnumerable<HexTile> hexes, int x1, int y1, int x2, int y2, int maxd1, int maxd2) { IList<HexTile> hexRandom = new ArrayList<HexTile>(); hexRandom.AddAll(from hex in hexes orderby RNG.Next() select hex); foreach (var t in tiles) { var d1 = this.tiles[x1][y1].DistanceTo(t); var d2 = this.tiles[x2][y2].DistanceTo(t); if (d1 == maxd1 && d2 >= maxd2 + 1 || d1 >= maxd1 + 1 && d2 == maxd2 || d1 == maxd1 + 1 && d2 == maxd2 + 1) { t.HexTile = new OceanHexTile(); } else if (d1 <= maxd1 && d2 <= maxd2) { if (hexRandom.Count == 0) { t.HexTile = new DesertHexTile(""); } else { t.HexTile = hexRandom.RemoveLast(); } } else { t.HexTile = null; } } }