«Моя первая программа на C#», «first», «load1» как еще можно назвать небольшой примерчик, выделения ссылок из контента:


/// <summary>
/// Заменяет http://www.xxx.yy -> <a href="http://www.xxx.yy">www.xxx.yy</a>
/// </summary>
/// <param name="input">Какой-нибудь текст на вывод</param>
/// <returns>Текст с правильно расставленными ссылками</returns>
static string selectHref(String input)
{
    string output = input;

    Regex linksSearch = new Regex("(http://)?(www)\\.([A-z0-9\\.]+)");

    // использовалось для отладки
    ArrayList matches = new ArrayList();

    int charDelta = 0;

    Match href = linksSearch.Match(input);
    if (href.Success)
    {
        for (href = linksSearch.Match(input); href.Success; href = href.NextMatch())
        {
            int charIndex = href.Index + charDelta; // добавляем разницу в буквах, так как строки были увеличены
            string link = href.ToString();

            matches.Add(link);

            //string previousChar = output.Substring(charIndex - 1, 1);

            if (charIndex == 0)
            {
                string linkHref = link;
                string linkLabel = link;

                // проверка правильности ссылок
                if (linkHref.Contains("http://") == false) linkHref = "http://" + linkHref;
                if (linkLabel.Contains("http://")) linkLabel = linkLabel.Replace("http://", "");

                string rlink = "<a href=\"" + linkHref + "\">" + linkLabel + "</a>";

                output = output.Remove(charIndex, link.Length); // удалем предыдущую строку
                output = output.Insert(charIndex, rlink); // ставим новую

                charDelta += rlink.Length - link.Length;
            }
            else
            {
                string previousChar = output.Substring(charIndex - 1, 1);
                if (previousChar != ">" && previousChar != "\"")
                {
                    string linkHref = link;
                    string linkLabel = link;

                    // проверка правильности ссылок
                    if (linkHref.Contains("http://") == false) linkHref = "http://" + linkHref;
                    if (linkLabel.Contains("http://")) linkLabel = linkLabel.Replace("http://", "");

                    string rlink = "<a href=\"" + linkHref + "\">" + linkLabel + "</a>";

                    output = output.Remove(charIndex, link.Length); // удалем предыдущую строку
                    output = output.Insert(charIndex, rlink); // ставим новую

                    // разница в индексе нахождение в строке
                    charDelta += rlink.Length - link.Length;

                }
            }

        }
    }

    return output;
}
    

Конечно, тут много всякой фигни, вроде повторяющихся кусков кода. Ссылкой не будет окаймлсяться текст, у которого есть тег, типа http://somewhere.ru (в конкретном случае это не потребовалось). Выносить их никуда не стал, так как вначале нужно сделать новый класс. А я его делать не стал — не понятно, понадобиться эта функция где-то еще или нет.