読者です 読者をやめる 読者になる 読者になる

裏口からの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("賞金は無し");
            }
        }
    }
}