fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5. using System.Security.Cryptography;
  6. using System.Text;
  7.  
  8. namespace exdict1
  9. {
  10. class Program
  11. {
  12. private const int MaxItems = 50000;
  13. private static Dictionary< String,String> intDict = new Dictionary<String,string>(MaxItems);
  14. private static Random r = new Random();
  15.  
  16. // Note this is from http://stackoverflow.com/questions/1344221/how-can-i-generate-random-8-character-alphanumeric-strings-in-c
  17.  
  18. public static string GetUniqueKey(int maxSize)
  19. {
  20. var chars ="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".ToCharArray();
  21. var data = new byte[maxSize];
  22. var crypto = new RNGCryptoServiceProvider();
  23. crypto.GetNonZeroBytes(data);
  24. var result = new StringBuilder(maxSize);
  25. foreach (var b in data)
  26. {
  27. result.Append(chars[b % (chars.Length)]);
  28. }
  29. return result.ToString();
  30. }
  31.  
  32.  
  33. private static void Main(string[] args)
  34. {
  35. Console.WriteLine("Generating...");
  36. var watch = new Stopwatch();
  37. var randomkeys = new List<String>(10);
  38.  
  39. watch.Start();
  40. for (var i = 0; i < MaxItems; i++)
  41. {
  42. var key = GetUniqueKey(25);
  43. var value = GetUniqueKey(100);
  44. intDict.Add(key, value);
  45. if (r.Next(100) == 1)
  46. {
  47. if (randomkeys.Count() < 10)
  48. {
  49. randomkeys.Add(key);
  50. }
  51. }
  52. }
  53. watch.Stop();
  54. Console.WriteLine("Generated... in {0}", watch.Elapsed.TotalSeconds);
  55. watch.Reset();
  56. watch.Start();
  57. for (var i = 0; i < 10; i++)
  58. {
  59. var akey = randomkeys[i];
  60. var value = intDict[akey];
  61. Console.WriteLine("Key= {0} Value = {1}",akey,value);
  62. }
  63. Console.WriteLine("Fetched... in {0}", watch.Elapsed.TotalSeconds);
  64. watch.Stop();
  65. // Console.ReadKey();
  66. }
  67. }
  68. }
  69.  
Success #stdin #stdout 4.59s 50944KB
stdin
Standard input is empty
stdout
Generating...
Generated... in 4.5533051
Key= vbGvquEKpJgT4f2Hm6OmkTuYj Value = 50xVJkog2EFtK868ZTvVBDekV0ysWvSeeAuCSzqEWBflk8eIbs8WXu3QJq7oCfAqNsRa9HkZuFC23Zrue1X33SnRDgH32ZhxG0Km
Key= snD2rPVcUNPNystDtb5JsT5MO Value = Uw3nbZhi3IsNrfHTfPpeqikieIlOAiUucBv8zcoO2SqiCO9TxCRI5YiAmuLDCD8F052CZUVTLtuTkcYcos1s1XJIfcQvCXVrw9ZX
Key= hGlzMPPZ0DjpEblkmpDWPQYQO Value = iCBt7qFYwTr8jgIenktN5BcokZvFRb7TC7NcOuWRzLykzEbHN7QSsyyTZNwT2TdzkdTXPYLAiLVMz0shECoIWdas1ebeUyXBGovb
Key= AQcp5bCimRNXgomEpypAfHMxJ Value = 2AeS8oBxslczm387Ucp5Q6LSP1DgLxp4oJQeOPcfabejejXzpHGRNTTakBGT5LEcBq6R0aBYaznRHk40SbIfm7MRPQC92Qa5xcYW
Key= lfZ62p9JEkdAzkpzWpSybm3sl Value = c1y8vJaXM89sGqussS2WCFAvyLiVhUZVXdShCNIs4OgdjfiEAdBXHWgBmfy8qUnMwMtOWjKrnCNiWVSeqa5VHDyGoscZCLMsFQAK
Key= tqyViDX8sTqJKsZYGtBBHjqsl Value = LlfXHce5PHtfsWpL4u4UlLZ8oxn5dgbhpVnOIH67gGgyKvPe0DQwhiXSbvoznywr5VghPodMxaTr2xNch0erDEKJGj57FCkbhyu3
Key= 7ALYtRnva942U4TfheYZNJ21N Value = 5spIC5FC9yFHMKTMMx1q2ApgWu6PLhdjf5m8oNAkBibwj2R4Nf3LMaANj97Hfoj5V0S5oCWFzrvH2qUvZVWSP7qAvQrR7VTa1uBN
Key= Oy3QIdFY1BmY3IqTp7U4kHpef Value = bXN9KBbtzkn4O5YpssWISV6e5DLabBd8nCu1bgvjOCJMkqAHQ4hzSMNCjiF0kdci6GvKNDhFemckTqhDNljjYEeS9euf54MjGey1
Key= 7Tfpqn1MqrkrRNznIoUhdtsh3 Value = HfhCjhefYRR1TUFscCq8sAQFYL2F6S47ZI42uyMUyHjWPK77Y6bzNuPaNlZodPhb90vCGp0WVD1IzUGQ1DfFoINZrtg9J0yqP65B
Key= RtTaos4P21EEQUayUtHyu9hmU Value = C5D5g1KX2YbG2iRIjWToHHS9QJeIaaWcsX7g7JyeFyZKKFWBrNiekoh7QQVs9hxjvThUREI5mAJiChEchXzpegu0Yd67SN5na01u
Fetched... in 0.0009829