Из заданных строк нужно вывести только те, в которых в первой части строки (до знака ;) есть заданное слово - C#

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

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

Подскажите пожалуйста, есть строки например: jjhtestii;blabla test;blabla testll;blabla hhtest;blabla из этих строк нужно вывести только те в которых в первой части строки (до знака ; ) есть заданное слово, в данном случае "test" без лишних символов. т.е она должна вывести только строку test;blabla Спасибо.

Решение задачи: «Из заданных строк нужно вывести только те, в которых в первой части строки (до знака ;) есть заданное слово»

textual
Листинг программы
    class CustomStringComparer : IEqualityComparer<string>
    {
        public int GetHashCode(string str)
        {
            return str.Split(';')[0].GetHashCode();
        }
        public bool Equals(string str1, string str2)
        {   
            return string.Equals(str1.Split(';')[0],str2.Split(';')[0]);
        }
        public bool Equals(string s)
        {
            return false;
        }
    }
    
    class Program
    {
        
        public static void Main(string[] args)
        {
            List<string> list1 = new List<string>();
            List<string> list2 = new List<string>();
            List<string> log = new List<string>();
 
            //Заполняем списки
            Random rnd = new Random();
            for (int i = 0; i < 3000000; i++) {
                int r = rnd.Next(0,8000000);
                list2.Add(string.Concat(r.ToString(),";blabla"));
            }
            for (int i = 0; i < 400000; i++) {
                int r = rnd.Next(0,4000000);
                list1.Add(r.ToString());
            }
            
            Stopwatch sw = new Stopwatch();
            Console.WriteLine("Press any key to start");
            Console.ReadKey(true);
            sw.Start();
            
            var comparer = new CustomStringComparer();
            log.AddRange(list1.Intersect(list2, comparer));
            
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
            Console.WriteLine(log.Count.ToString());
            Console.ReadKey(true);
        }

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


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

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

13   голосов , оценка 4.308 из 5
Похожие ответы