File Stream C#

using System;
using System.Diagnostics.Contracts;
public class TextUtilities
{
    public static int GetLineCount(String text)
    {
        int lcnt = 1;
        for (int i = 0; i < text.Length; i++)
        {
            if (text[i] == '\n')
                lcnt += 1;
        }
        return lcnt;
    }
    public static int GetFirstCharIndexFromLineIndex(string text, int lineIndex)
    {
        if (text == null)
            throw new ArgumentNullException("text");
        if (lineIndex <= 0)
            return 0;
        int currentLineIndex = 0;
        for (int i = 0; i < text.Length - 1; i++)
        {
            if (text[i] == '\n')
            {
                currentLineIndex += 1;
                if (currentLineIndex == lineIndex)
                    return Math.Min(i + 1, text.Length - 1);
            }
        }
        return Math.Max(text.Length - 1, 0);
    }
    public static int GetLastCharIndexFromLineIndex(string text, int lineIndex)
    {
        if (text == null)
            throw new ArgumentNullException("text");
        if (lineIndex < 0)
            return 0;
        int currentLineIndex = 0;
        for (int i = 0; i < text.Length - 1; i++)
        {
            if (text[i] == '\n')
            {
                if (currentLineIndex == lineIndex)
                    return i;
                currentLineIndex += 1;
            }
        }
        return Math.Max(text.Length - 1, 0);
    }
}