Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/35: Рейтинг темы: голосов - 35, средняя оценка - 4.83
5 / 5 / 1
Регистрация: 02.05.2012
Сообщений: 53

Как конвертировать данные из string[] в byte[]

15.10.2012, 21:30. Показов 6559. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди, как перевести из string[] в byte[], а то вот так не хочет:
C#
1
2
3
4
5
6
7
byte[] fileData = new byte[richTextBox1.Text.Length];
                string[] array;
                array = richTextBox1.Text.Split(' ').ToArray();
                for (int i = 0; i < array.Length; i++)
                {
                    fileData[i] = Convert.ToByte( array[i]);
                }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2012, 21:30
Ответы с готовыми решениями:

Как конвертировать byte[] в string[]?
Как получить строку байтов ?

Конвертировать из string в new byte[] { }
Вообщем такой вопрос, у меня задача: Например есть string Test = &quot;0xEB, 0x90&quot;; мне нужно из string сделать чтобы было так new byte...

Конвертировать из string в byte
Здравствуйте есть такая строка, представленная шестнадцатеричной системой &quot;28 9D BA DD 03 00 00 6F&quot; из нее надо бы получить байты...

12
Не осилил Linux
 Аватар для =OutlaW=
267 / 61 / 6
Регистрация: 06.08.2009
Сообщений: 223
15.10.2012, 23:18
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Linq;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] source = new[] {"first", "second", "third"};
            byte[] bytes = source.SelectMany(s => s.ToArray())
                .Select(Convert.ToByte)
                .ToArray();
            foreach (var b in bytes)
                Console.Write(b);
            Console.Read();
        }
    }
}
1
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8728 / 3680 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
16.10.2012, 02:29
C#
1
byte[] buff = Encoding.Default.GetBytes(/* string */);
Encoding
0
4 / 4 / 0
Регистрация: 11.05.2012
Сообщений: 53
16.10.2012, 17:28
=OutlaW=, поясните пожалуйста операцию source.SelectMany(s => s.ToArray()). Особенно то, что в скобках. Я понимаю что это лямбда выражение, но к сожалению Шилдт (именно его я и читаю) не приводил в пример подобную конструкцию.

Добавлено через 3 часа 58 минут
да и вообщем расскажите о source.SelectMany(s => s.ToArray()).Select(Convert.ToByte).ToAr ray(); - ваш ход мысли в этом коде
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
16.10.2012, 17:31
SelectMany позволяет объединить коллекцию коллекций в одну большую коллекцию.

То есть у нас есть коллекция строк. (массив string[])
и еще сама строка является коллекцией символов(char).

Из этого всего можно собрать одну большую коллекцию char. Это и делает SelectMany.

PS. Можно просто source.SelectMany(s => s)
1
Не осилил Linux
 Аватар для =OutlaW=
267 / 61 / 6
Регистрация: 06.08.2009
Сообщений: 223
16.10.2012, 18:51
Цитата Сообщение от turbanoff Посмотреть сообщение
PS. Можно просто source.SelectMany(s => s)
да-да, я как раз хотел исправить.

Добавлено через 20 минут
да и вообщем расскажите о source.SelectMany(s => s.ToArray()).Select(Convert.ToByte).ToAr ray(); - ваш ход мысли в этом коде
source это IEnumerable<string>
с помощью SelectMany(s => s) я из коллекции строк получаю коллекцию всех массивов содержащихся в этих строках.
далее с помощью Select(Convert.ToByte) я преобразую коллекцию символов в коллекцию байтов. здесь мне удалось передать не лямбду, а метод, потому что Convert.ToByte полностью совпадает сигнатурой с Func<char, byte>, который и нужен этому методу. тип результата выводится компилятором.
.ToArray(); - тут я заставляю выполнить LINQ-запрос немедленно и вернуть его в виде массива.
1
4 / 4 / 0
Регистрация: 11.05.2012
Сообщений: 53
16.10.2012, 19:51
=OutlaW=, а как компилятор понимает что именно от него хотят в методе SelectMany - Мне не понятно выражение s => s.ToArray() в качестве параметра. Как компилятор узнает чему равен параметр "s"? Сейчас посмотрел MSDN и там указаны 4 перегрузки этого метода. Но при этом в примерах используется лямбда выражение. В качестве параметра метода SelectMany() всегда должно использоваться лямбда выражение?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
16.10.2012, 20:22
Цитата Сообщение от akeee Посмотреть сообщение
=OutlaW=, а как компилятор понимает что именно от него хотят в методе SelectMany - Мне не понятно выражение s => s.ToArray() в качестве параметра. Как компилятор узнает чему равен параметр "s"? Сейчас посмотрел MSDN и там указаны 4 перегрузки этого метода. Но при этом в примерах используется лямбда выражение. В качестве параметра метода SelectMany() всегда должно использоваться лямбда выражение?
Вы же смотрели перегрузки SelectMany их 4 шт. Одна из них - только с одной лямбдой, её компилятор и выбирает так как мы передали только одну лямбду.
По делу:
Попытайтесь сами руками написать, с помощью обычных циклов - быстрее поймете что к чему. И почитайте книжку по LINQ на досуге.
1
 Аватар для zewer
2357 / 1775 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
01.06.2014, 01:11
Цитата Сообщение от =OutlaW= Посмотреть сообщение
C#
1
2
3
byte[] bytes = source.SelectMany(s => s.ToArray()) 
.Select(Convert.ToByte) 
.ToArray();
не хотел создавать новой темы, а как обратно перейти в string[] из Byte?
0
2 / 2 / 3
Регистрация: 19.06.2010
Сообщений: 13
01.06.2014, 01:16
C#
1
string result = System.Text.Encoding.UTF8.GetString(byteArray)
0
 Аватар для zewer
2357 / 1775 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
01.06.2014, 01:22
я о string[], а не просто string
0
2 / 2 / 3
Регистрация: 19.06.2010
Сообщений: 13
01.06.2014, 01:26
Засуньте в цикл и считывайте по нужной длине строки
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
01.06.2014, 21:43
Одной строчкой переводится.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication57
{
    class Program
    {
        static void Main(string[] args)
        {
            string sss = "8 9 6 3 2 0 5 9 1 67 98 7";
            byte[] arr = (from s in sss.Split(' ').ToArray() select byte.Parse(s)).ToArray();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2014, 21:43
Помогаю со студенческими работами здесь

Не получается конвертировать string в byte
У меня есть двоичный код, но записанный в переменной типа string (primer 1), мне его надо конвертировать в byte (primer 2), проблема в том...

Конвертировать из byte[] в List<string> и обратно
Добрых времени суток. Собственно как переветс List&lt;string&gt; в byte, а потом наоборот. Нужно это для клиент серверного приложения.

Как конвертировать string текст в string нули-и-единицы и наоборот
Я задавался этой темой ранее, и решил ее, но сейчас свои тараканы, поэтому давайте сначала. Есть строка &quot;Это строка&quot;. Надо каждый...

Ошибка при присвоении argv[1] переменной string. Как конвертировать к типу string?
&quot;call of an object of a class type without appropriate operator() or conversion functions to pointer-to-function type&quot; ...

Как конвертировать System::String в std::string?
Как конвертировать system::string в std::string? А лучше сразу system::string в int.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru