simeon3000

Forum Topics

Jul 10th, 2017
179
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.             //06. Forum Topics         
  2.             var topicsDict = new Dictionary<string, HashSet<string>>();
  3.             string input = Console.ReadLine();
  4.  
  5.             while (input != "filter")
  6.             {
  7.                 string[] inArr = input
  8.                     .Split(new string[] { " -> " }, StringSplitOptions.None);
  9.  
  10.                 string topic = inArr[0];
  11.                 if (!topicsDict.ContainsKey(topic))
  12.                 {
  13.                     topicsDict.Add(topic, new HashSet<string>());
  14.                 }
  15.  
  16.                 string[] tagsArr = inArr[1]
  17.                     .Split(new string[] { ", " }, StringSplitOptions.None);
  18.  
  19.                 foreach (string tag in tagsArr)
  20.                 {
  21.                     topicsDict[topic].Add(tag);
  22.                 }
  23.  
  24.                 input = Console.ReadLine();
  25.             }
  26.  
  27.             string[] tagsToFind = Console.ReadLine()
  28.                 .Split(new string[] { ", " }, StringSplitOptions.None);
  29.  
  30.             foreach (var item in topicsDict)
  31.             {                
  32.                 bool tagsToFindAreContained = tagsToFind.All(t => item.Value.Contains(t));
  33.                
  34.                 //bool tagsToFindAreContained = true;
  35.                 //foreach (string tag in tagsToFind)
  36.                 //{
  37.                 //    if (!item.Value.Contains(tag))
  38.                 //    {
  39.                 //        tagsToFindAreContained = false;
  40.                 //        break;
  41.                 //    }
  42.                 //}
  43.  
  44.                 if (tagsToFindAreContained)
  45.                 {
  46.                     var resultList = item.Value.Select(x => "#" + x).ToList();
  47.  
  48.                     Console.WriteLine("{0} | {1}",
  49.                         item.Key,
  50.                         string.Join(", ", resultList));
  51.                 }
  52.             }
RAW Paste Data