裏口からのC#実践入門
4-6 ユニークさが確保されているのに判定する
仕様をMSDNよく見て理解すること、ということかな。
Dictionary(TKey, TValue).Add メソッド (System.Collections.Generic)
using System; using System.Collections.Generic; using System.Linq; namespace Uraguchi.Scene4 { public class Tenshi6 { private static Dictionary<int, string> dic = new Dictionary<int, string>(); public static void add(int key, string value) { dic.Add(key, value); } public static void Run() { var start = DateTime.Now; for (int i = 0; i < 10; i++) { Console.WriteLine(i); dic.Clear(); foreach (var item in Enumerable.Range(0, 1000000)) { add(item, item.ToString()); } } Console.WriteLine(DateTime.Now - start); } } }
4-7 ユニークさが確保されていないのに判定しない
Linqを使いこなすのがポイント。
Enumerable.Count(TSource) メソッド (IEnumerable(TSource), Func(TSource, Boolean)) (System.Linq)
using System; using System.Linq; namespace Uraguchi.Scene4 { public class Tenshi7 { public static void Run() { int[] winners = { 2, 1, 5, 3, 5 }; for(int i = 1; i < 6; i++) { Console.WriteLine("ゼッケン {0} 番", i); if (winners.Contains(i)) Console.WriteLine( "優勝しているので賞金 {0} 円授与", winners.Count(c => c == i) * 1000000 ); else Console.WriteLine("賞金は無し"); } } } }