//watashi no falo e vostro idiom. :P C# gomen nasei?

I know peoples, that this may be one of those left with no answer, we
like to enforce english, isn't it?

        static byte[] convert (byte?[] array) //converts one to one,
low memory use and fast to write
        {
            const byte nullvalue = 0;
            return Array.ConvertAll<byte?, byte>
                (
                    array
                    ,
                    input =>
                    {
                        if (input.HasValue)
                        {
                            return input.Value;
                        }
                        else
                        {
                            return nullvalue;
                        }
                    }
                );
        }

        static byte[] convert (byte?[] array) //A bit more versatile
        {
            const byte nullvalue = 0;
            int length = array.Length;
            List<byte> result = new List<byte>();
            for (int i = 0; i < length; i++)
            {
                byte? input = array[i];
                if (input.HasValue)
                {
                    result.Add(input.Value);
                }
                else
                {
                    result.Add(nullvalue);
                    //use "continue" instead to skip the nulls
                }
            }
            return result.ToArray();
        }

        static byte[] convert (byte?[] array) //Concurrent, no
warranty on the order, fater with multiple cores
        {
            const byte nullvalue = 0;
            int length = array.Length;
            var result = new
System.Collections.Concurrent.ConcurrentQueue<byte>();
            System.Threading.Tasks.Parallel.For
                (
                    0,
                    length,
                    i =>
                    {
                        byte? input = array[i];
                        if (input.HasValue)
                        {
                            result.Enqueue(input.Value);
                        }
                        else //skip this else to skip the nulls
                        {
                            result.Enqueue(nullvalue);
                        }
                    }
                );
            return result.ToArray();
        }

Let's try to make something useful of this thread, now that I've made
the above gift, that has the risk of being just copy->paste and never
understood....
Hesre the situation, any body can write a concurrent solutuon that
warranties the order and allows to skip the nulls? and what the
solution of those that has the less memory usage?

On 26 jul, 07:10, Bernardo Rosmaninho <[email protected]>
wrote:
> Bom dia galera,
>    Alguém já teve que gravar em um campo BLOB not null e tenho que converter
> um array de bytes Nulable em um array de bytes.
>    Podem me dar uma ajuda?
> []'s
>
> --
> Bernardo Rosmaninho

Reply via email to