C# program to count number of bytes in an array

In C#, you can count the number of bytes in an array using the Buffer.ByteLength() method. This method returns the total number of bytes occupied by all elements in the array, which is particularly useful when working with different data types that have varying byte sizes.

Syntax

Following is the syntax for using Buffer.ByteLength()

int byteCount = Buffer.ByteLength(array);

Parameters

  • array − The array whose byte length you want to determine. It must be an array of primitive types.

Return Value

The method returns an int representing the total number of bytes occupied by all elements in the array.

Using Buffer.ByteLength() with Byte Arrays

For byte arrays, each element occupies exactly 1 byte, so the byte length equals the array length −

using System;

class Program {
    static void Main() {
        byte[] b = { 5, 9, 19, 23, 29, 35, 55, 78 };
        int len = Buffer.ByteLength(b);
        
        for (int i = 0; i < len; i++) {
            Console.WriteLine(b[i]);
        }
        Console.WriteLine("Length of byte array = " + len);
    }
}

The output of the above code is −

5
9
19
23
29
35
55
78
Length of byte array = 8

Using Buffer.ByteLength() with Different Data Types

The Buffer.ByteLength() method is especially useful when working with arrays of different primitive types, as each type has a different byte size −

using System;

class Program {
    static void Main() {
        // Different array types
        byte[] byteArray = { 1, 2, 3, 4 };
        int[] intArray = { 10, 20, 30, 40 };
        double[] doubleArray = { 1.5, 2.5, 3.5 };
        
        Console.WriteLine("Byte array elements: " + byteArray.Length);
        Console.WriteLine("Byte array bytes: " + Buffer.ByteLength(byteArray));
        Console.WriteLine();
        
        Console.WriteLine("Int array elements: " + intArray.Length);
        Console.WriteLine("Int array bytes: " + Buffer.ByteLength(intArray));
        Console.WriteLine();
        
        Console.WriteLine("Double array elements: " + doubleArray.Length);
        Console.WriteLine("Double array bytes: " + Buffer.ByteLength(doubleArray));
    }
}

The output of the above code is −

Byte array elements: 4
Byte array bytes: 4

Int array elements: 4
Int array bytes: 16

Double array elements: 3
Double array bytes: 24

Comparison: Array.Length vs Buffer.ByteLength()

Property/Method Description Return Value
Array.Length Returns the number of elements in the array Element count
Buffer.ByteLength() Returns the total bytes occupied by all elements Total byte count

Using Buffer.ByteLength() for Memory Calculations

using System;

class Program {
    static void Main() {
        long[] longArray = { 100L, 200L, 300L, 400L, 500L };
        
        Console.WriteLine("Long array contains " + longArray.Length + " elements");
        Console.WriteLine("Each long occupies " + sizeof(long) + " bytes");
        Console.WriteLine("Total memory used: " + Buffer.ByteLength(longArray) + " bytes");
        Console.WriteLine("Verification: " + longArray.Length + " × " + sizeof(long) + " = " + (longArray.Length * sizeof(long)) + " bytes");
    }
}

The output of the above code is −

Long array contains 5 elements
Each long occupies 8 bytes
Total memory used: 40 bytes
Verification: 5 × 8 = 40 bytes

Conclusion

The Buffer.ByteLength() method provides an efficient way to determine the total number of bytes occupied by an array in memory. This is particularly useful for memory management calculations and when working with arrays of different primitive data types that have varying byte sizes.

Updated on: 2026-03-17T07:04:35+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements