Не работает поиск в файле слова - C#

Узнай цену своей работы

Формулировка задачи:

Просто слово

"one"

находит, но если изменить строку на

"one 1"

, то слово

one

уже не находится. Полагаю, нужно добавить разделение через Split и определять пробелы, но что-то у меня не получается. Кто может помочь, буду очень благодарен.
Листинг программы
  1. using System;
  2. namespace ConsoleApplication1
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. var cards = new Cards();
  9. Console.WriteLine(cards.Contains("one"));
  10. }
  11. }
  12. }
Листинг программы
  1. using System.Collections.Generic;
  2. using System.IO;
  3. namespace ConsoleApplication1
  4. {
  5. class Cards
  6. {
  7. private const string PATH_TO_FILE = "text.txt";
  8. private HashSet<string> cardsNumbers;
  9. public Cards()
  10. {
  11. var cardsNumbersFromFile = File.ReadAllLines(PATH_TO_FILE);
  12. cardsNumbers = new HashSet<string>(cardsNumbersFromFile);
  13. }
  14. public bool Contains(string value)
  15. {
  16. return cardsNumbers.Contains(value);
  17. }
  18. }
  19. }

text.txt

Листинг программы
  1. one 1
  2. 2
  3. three
  4. four
  5. способ у

Решение задачи: «Не работает поиск в файле слова»

textual
Листинг программы
  1.     class Cards
  2.     {
  3.         private const string PATH_TO_FILE = "text.txt";
  4.         private HashSet<string> cardsNumbers;
  5.  
  6.         public Cards()
  7.         {
  8.             var cardsNumbersFromFile = File.ReadAllLines(PATH_TO_FILE);
  9.             cardsNumbers = new HashSet<string>(cardsNumbersFromFile, new CardComparer());
  10.         }
  11.  
  12.         public bool Contains(string value)
  13.         {
  14.             return cardsNumbers.Contains(value);
  15.         }
  16.     }
  17.  
  18.     public class CardComparer : IEqualityComparer<string>
  19.     {
  20.         public bool Equals(string x, string y)
  21.         {
  22.             return x.StartsWith(y) || y.StartsWith(x);
  23.         }
  24.  
  25.         public int GetHashCode(string obj)
  26.         {
  27.             int index = obj.IndexOf(' ');
  28.             return index > 0? obj.Remove(index).GetHashCode() : obj.GetHashCode();
  29.         }
  30.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.636 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут