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

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

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

Просто слово

"one"

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

"one 1"

, то слово

one

уже не находится. Полагаю, нужно добавить разделение через Split и определять пробелы, но что-то у меня не получается. Кто может помочь, буду очень благодарен.
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var cards = new Cards();
            Console.WriteLine(cards.Contains("one"));
        }
    }
}
using System.Collections.Generic;
using System.IO;
 
namespace ConsoleApplication1
{
    class Cards
    {
        private const string PATH_TO_FILE = "text.txt";
        private HashSet<string> cardsNumbers;
 
        public Cards()
        {
            var cardsNumbersFromFile = File.ReadAllLines(PATH_TO_FILE);
            cardsNumbers = new HashSet<string>(cardsNumbersFromFile);
        }
 
        public bool Contains(string value)
        {
            return cardsNumbers.Contains(value);
        }
    }
}

text.txt

one 1
2
three
four
способ у

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

textual
Листинг программы
    class Cards
    {
        private const string PATH_TO_FILE = "text.txt";
        private HashSet<string> cardsNumbers;
 
        public Cards()
        {
            var cardsNumbersFromFile = File.ReadAllLines(PATH_TO_FILE);
            cardsNumbers = new HashSet<string>(cardsNumbersFromFile, new CardComparer());
        }
 
        public bool Contains(string value)
        {
            return cardsNumbers.Contains(value);
        }
    }
 
    public class CardComparer : IEqualityComparer<string>
    {
        public bool Equals(string x, string y)
        {
            return x.StartsWith(y) || y.StartsWith(x);
        }
 
        public int GetHashCode(string obj)
        {
            int index = obj.IndexOf(' ');
            return index > 0? obj.Remove(index).GetHashCode() : obj.GetHashCode();
        }
    }

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


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

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

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