Changeset 13583 for branches/PerformanceComparison/HeuristicLab.Analysis.FitnessLandscape/3.3/Extensions.cs
- Timestamp:
- 02/02/16 14:10:53 (8 years ago)
- Location:
- branches/PerformanceComparison/HeuristicLab.Analysis.FitnessLandscape
- Files:
-
- 1 added
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/PerformanceComparison/HeuristicLab.Analysis.FitnessLandscape/3.3/Extensions.cs
r13484 r13583 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using HeuristicLab.Core; 23 using System; 2 24 using System.Collections.Generic; 3 using System.Linq;4 using System.Text;5 25 6 26 namespace HeuristicLab.Analysis.FitnessLandscape { 7 public static class ListExtensions {27 public static class IListExtensions { 8 28 public static void DuplicateLast<T>(this IList<T> l) { 9 l.Add(l[l.Count -1]);29 l.Add(l[l.Count - 1]); 10 30 } 11 public static T Last<T>(this IList<T> l) { 12 return l[l.Count - 1]; 31 32 public static void Shuffle<T>(this IList<T> list, IRandom random) { 33 int n = list.Count - 1; 34 while (n > 0) { 35 int k = random.Next(n + 1); 36 T value = list[k]; 37 list[k] = list[n]; 38 list[n] = value; 39 n--; 40 } 41 } 42 } 43 44 public static class IDictionaryExtensions { 45 public static TValue GetValueOrDefault<TKey, TValue>(this IDictionary<TKey, TValue> d, TKey key, Func<TValue> @default) { 46 TValue value; 47 return d.TryGetValue(key, out value) ? value : @default(); 48 } 49 50 public static TValue GetValueOrDefault<TKey, TValue>(this IDictionary<TKey, TValue> d, TKey key, TValue @default = default(TValue)) { 51 TValue value; 52 return d.TryGetValue(key, out value) ? value : @default; 13 53 } 14 54 }
Note: See TracChangeset
for help on using the changeset viewer.