Field within a variable dynamically using array

Asked

Viewed 56 times

1

Here I have code:

byte[] Imagem1 = null;
byte[] Imagem2 = null;
byte[] Imagem3 = null;
byte[] Imagem4 = null;
byte[] Imagem5 = null;
byte[] Imagem6 = null;

How can I declare bytes[] variables inside an array ?

I’ve tried that:

byte[] imagem = new byte[6];

Problem:

foreach (string item in Request.Files)
{
    HttpPostedFileBase file = Request.Files[item] as HttpPostedFileBase;
    imagem[0] = ConvertToBytes(file);
}

Error:

Cannot implicitly convert type 'byte[]' to 'byte'

Another example:

int[] inteiros = new int[5];

inteiros[0] = 154;
inteiros[1] = 02555;

I know it works by int or string, I just can’t by byte[].

1 answer

1


The error is here: imagem[0] = ConvertToBytes(file);

byte[] imagem = new byte[6];

foreach (string item in Request.Files)
{
    HttpPostedFileBase file = Request.Files[item] as HttpPostedFileBase;
    imagem[0] = ConvertToBytes(file);
}

The right thing would be

byte[] imagem = new byte[6];
foreach (HttpPostedFileBase item in Request.Files)
{
    imagem = ConvertToBytes(item);
}

Maybe what you need is this:

List<byte[]> imagens=new List<byte[]>();

for ( int i=0;i<Request.Files.Count();i++)
{
   imagens.Add( ConvertToBytes(Request.Files[i]));
}

But the way you’re doing it, the right thing would be:

byte[] Imagem1 = null;
byte[] Imagem2 = null;
byte[] Imagem3 = null;
byte[] Imagem4 = null;
byte[] Imagem5 = null;
byte[] Imagem6 = null;

foreach (HttpPostedFileBase item in Request.Files)
{
    HttpPostedFileBase file = item;
    if(Imagem1 == null)
       Imagem1 = ConvertToBytes(file);
    if(Imagem2 == null)
       Imagem2 = ConvertToBytes(file);
    if(Imagem3 == null)
       Imagem3 = ConvertToBytes(file);
    if(Imagem4 == null)
       Imagem4 = ConvertToBytes(file);
    if(Imagem5 == null)
       Imagem5 = ConvertToBytes(file);
    if(Imagem6 == null)
       Imagem6 = ConvertToBytes(file);
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.