/// <summary>Creates a populated <see cref="Collection{T}"/> of <see cref="Landmark"/>
        /// instances.</summary>
        /// <param name="board">The board on which the collection of landmarks is to be instantiated.</param>
        /// <param name="landmarkCoords">Board coordinates of the desired landmarks</param>
        public static ILandmarkCollection CreateLandmarks(
            IHexBoard <IHex> board,
            IFastList <HexCoords> landmarkCoords
            )
        {
            if (landmarkCoords == null)
            {
                throw new ArgumentNullException("landmarkCoords");
            }

            ILandmarkCollection tempLandmarks = null, landmarks = null;

            try {
                tempLandmarks = new LandmarkCollection((
                                                           from coords in landmarkCoords.AsParallel().AsOrdered()
                                                           where board.IsOnboard(coords)
                                                           select new Landmark(coords, board)
                                                           ).ToList <ILandmark>());
                landmarks     = tempLandmarks;
                tempLandmarks = null;
            } finally { if (tempLandmarks != null)
                        {
                            tempLandmarks.Dispose();
                        }
            }
            return(landmarks);
        }
        public void LoadLandmarkMenu(ILandmarkCollection landmarks)
        {
            menuItemLandmarks.Items.Clear();
            menuItemLandmarks.Items.Add("None");
            landmarks?.ForEach(landmark => menuItemLandmarks.Items.Add($"{landmark.Coords}"));

            menuItemLandmarks.SelectedIndexChanged += new EventHandler(MenuItemLandmarks_SelectedIndexChanged);
            menuItemLandmarks.SelectedIndex         = 0;
        }
예제 #3
0
 public void SetLandmarkMenu(ILandmarkCollection landmarks)
 {
 }