foreach (Suit suit in (Suit[]) Enum.GetValues(typeof(Suit))) { }
Примечание : бросок к
(Suit[])
не строго необходим, , но действительно делает код на 0,5 нс быстрее.
«\ r \ n» на самом деле не является разделителем фрагментов. Размер блока определяет количество байтов, состоящих из данных этого блока. Затем клиент должен без труда прочитать "\ r \ n" в вашем сообщении.
По замыслу, это не проблема. Каждый блок определяет размер своего блока данных в байтах. Содержимое каждого блока данных является произвольным и должно приниматься как таковое, поэтому оно может включать в себя разрывы строк. Если клиент правильно считывает каждый фрагмент (считывает строку и анализирует ее размер в байтах, затем считывает указанное количество байтов, затем считывает разрыв строки), не имеет значения, есть ли разрывы строк в данных, поскольку клиент читает данные, основываясь на размере байта, а не на переносах строк.