How to remove trailing nulls (0) from byte array in C#

2 Answers

0 votes
using System;

class Program
{
    static void Main()
    {
        byte[] byteArray = { 1, 2, 3, 0, 0, 0, 0 };
        int lastNonNullIndex = Array.FindLastIndex(byteArray, b => b != 0);

        // Create a new array with trimmed elements
        byte[] trimmedArray = new byte[lastNonNullIndex + 1];
        Array.Copy(byteArray, trimmedArray, trimmedArray.Length);

        foreach (var b in trimmedArray) {
            Console.Write(b + " ");
        }
    }
}


/*
run:

1 2 3 

*/

 



answered Mar 12, 2025 by avibootz
0 votes
using System;

public class Program
{
    public static void Main()
    {
        byte[] byteArray = { 1, 2, 3, 0, 0, 0, 0 };
        byte[] trimmedArray = RemoveTrailingNulls(byteArray);
        
        Console.WriteLine(string.Join(", ", trimmedArray)); // Output: 1, 2, 3
    }

    public static byte[] RemoveTrailingNulls(byte[] byteArray)   {
        if (byteArray == null || byteArray.Length == 0)
            return byteArray;

        int newLength = byteArray.Length;
        while (newLength > 0 && byteArray[newLength - 1] == 0)  {
            newLength--;
        }
        
        byte[] trimmedArray = new byte[newLength];
        Array.Copy(byteArray, trimmedArray, newLength);

        return trimmedArray;
    }
}


/*
run:

1, 2, 3

*/

 



answered Mar 12, 2025 by avibootz

Related questions

1 answer 196 views
1 answer 244 views
1 answer 192 views
2 answers 235 views
1 answer 185 views
1 answer 246 views
1 answer 177 views
...