Объектный массив в байтовый массив - PullRequest
1 голос
/ 19 марта 2012

У меня есть List объектов, которые я хотел бы преобразовать в byte[]

Мой List определяется следующим образом:

List<object> objects = new List<object>
{
     "obj1", "obj2", "obj2"
};

Можно ли каким-то чистым способом преобразовать этот список в byte[]? Список содержит только base64 строк

Вся помощь приветствуется

Ответы [ 2 ]

4 голосов
/ 19 марта 2012

Кусок торта:

objects.Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();

Если objects действительно List<Object>, как указывает @AustinSalonen, в отличие от List<String>, вам нужно убедиться, что у вас есть только строкисначала:

objects.OfType<String>().Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();

или актерский состав:

objects.Cast<String>().Select(s => Convert.FromBase64String(s)).SelectMany(i => i).ToArray();
1 голос
/ 19 марта 2012

Это должно работать для строк:

System.Text.Encoding enc = System.Text.Encoding.ASCII;  // Choose the right encoding here
List<byte[]> list = objects.Select(o=>enc.GetBytes(o.ToString()).ToList();
...