C# Soluction with Binary Search
Code
# Code
```csharp []
public class Solution {
    public string[] SplitMessage(string message, int limit) 
    {
        var n = message.Length;
        var digit = 1;
        while (true)
        {
            // 1 - 9, 10 - 99, 100 - 999, 1000, 9999....
            var count = 0;
            var x = 1;
            for (var i = 0; i < digit; ++i)
            {
                var labelSize = 3 + digit + x.ToString().Length;
                var wordSize = limit - labelSize;
                if (wordSize <= 0 && count < n)
                    return [];
                
                count += 9 * x * wordSize;
                if (count >= n) break;
                x *= 10;
            }

            if (count >= n) break;
            digit += 1;
        }

        int CalculateSize(int parts)
        {
            var remains = parts;
            var x = 1;
            var count = 0;
            while (remains > 0)
            {
                var labelSize = 3 + digit + x.ToString().Length;
                var wordSize = limit - labelSize;
                var wordsCnt = Math.Min(9 * x, remains);
                count += wordSize * wordsCnt;
                remains -= wordsCnt;
                x *= 10;
            }

            return count;
        }

        int l = (int)Math.Pow(10, digit - 1), r = (int)Math.Pow(10, digit);
        while (l < r)
        {
            var mid = l + (r - l) / 2;
            if (CalculateSize(mid) < n)
                l = mid + 1;
            else
                r = mid;
        }

        var size = l;
        var idx = 0;
        var res = new List<string>();
        for (var i = 1; i <= size; ++i)
        {
            var label = $"<{i}/{size}>";
            var wordSize = limit - label.Length;
            if (idx + wordSize >= n) wordSize = n - idx;
            
            var word = message.Substring(idx, wordSize);
            var part = word + label;
            res.Add(part);
            idx += wordSize;
        }

        return res.ToArray();    
    }
}
```
['C#']