books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

using System;

using System.Linq;

using System.Threading;

using System.Threading.Tasks;

using System.Net;

using System.Text;

string _theEBook = "";

GetBook();

Console.WriteLine("Downloading book...");

Console.ReadLine();

void GetBook()

{

  WebClient wc = new WebClient();

  wc.DownloadStringCompleted += (s, eArgs) =>

  {

    _theEBook = eArgs.Result;

    Console.WriteLine("Download complete.");

    GetStats();

  };

<b>  // Загрузить электронную книгу Чарльза Диккенса &quot;A Tale of Two Cities&quot;.</b>

<b>  // Может понадобиться двукратное выполнение этого кода, если ранее вы</b>

<b>  // не посещали данный сайт, поскольку при первом его посещении появляется</b>

<b>  // окно с сообщением, предотвращающее нормальное выполнение кода.</b>

  wc.DownloadStringAsync(new Uri(&quot;http://www.gutenberg.org/

  files/98/98-8.txt&quot;));

}

Класс

WebClient
определен в пространстве имен
System.Net
. Он предоставляет несколько методов для отправки и получения данных от ресурса, идентифицируемого посредством URL. В свою очередь многие из них имеют асинхронные версии, такие как метод
DownloadStringAsync()
, который автоматически порождает новый поток из пула потоков .NET Core Runtime. Когда объект
WebClient
завершает получение данных, он инициирует событие
DownloadStringCompleted
, которое обрабатывается с применением лямбда-выражения С#. Если вызвать синхронную версию этого метода (
DownloadString()
), то сообщение
Downloading book...
не появится до тех пор, пока загрузка не завершится.

Далее реализуйте метод

GetStats()
для извлечения индивидуальных слов, содержащихся в переменной
theEBook
, и передачи строкового массива на обработку нескольким вспомогательным методам:

void GetStats()

{

<b>  // Получить слова из электронной книги.</b>

  string[] words = _theEBook.Split(new char[]

    { ' ', 'u000A', ',', '.', ';', ':', '-', '?', '/' },

    StringSplitOptions.RemoveEmptyEntries);

<b>  // Найти 10 наиболее часто встречающихся слов.</b>

  string[] tenMostCommon = FindTenMostCommon(words);

<b>  // Получить самое длинное слово.</b>

  string longestWord = FindLongestWord(words);

<b>  // Когда все задачи завершены, построить строку, показывающую</b>

<b>  // все статистические данные в окне сообщений.</b>

  StringBuilder bookStats =

      new StringBuilder(&quot;Ten Most Common Words are:n&quot;);

  foreach (string s in tenMostCommon)

  {

    bookStats.AppendLine(s);

  }

  bookStats.AppendFormat(&quot;Longest word is: {0}&quot;, longestWord);

                       // Самое длинное слово

  bookStats.AppendLine();

  Console.WriteLine(bookStats.ToString(), &quot;Book info&quot;);

                                        // Информация о книге

}

Метод

FindTenMostCommon()
использует запрос LINQ для получения списка объектов
string
, которые наиболее часто встречаются в массиве
string
, а метод
FindLongestWord()
находит самое длинное слово:

string[] FindTenMostCommon(string[] words)

{

    var frequencyOrder = from word in words

                         where word.Length &gt; 6

                         group word by word into g

                         orderby g.Count() descending

                         select g.Key;

    string[] commonWords = (frequencyOrder.Take(10)).ToArray();

    return commonWords;

}

string FindLongestWord(string[] words)

{

    return (from w in words orderby w.Length descending select w)

        .FirstOrDefault();

}

После запуска проекта выполнение всех задач может занять внушительный промежуток времени, что зависит от количества процессоров в машине и их тактовой частоты. В конце концов, должен появиться следующий вывод:

Downloading book...

Download complete.

Ten Most Common Words are:

Defarge

himself

Manette

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*