在foreach循环中获取'System.OutOfMemoryException'

时间:2013-12-05 08:31:15

标签: asp.net sql c#-4.0

我正在从数据库中检索批量数据并对该数据进行更改,但它给出了错误的outofmemoryexception。下面是我的代码

public void AddArticleRefrences(ref List<Article> art)
{
    string blueWordStyle = "text-decoration: none; border-bottom: 1px solid #663366;color: #0000CC;";
    ArticalDAO objArt = new ArticalDAO();
    List<Article> MainArticle = objArt.GetListArticle(1);

    foreach (Article main in MainArticle)
    {
        foreach (var content in art)
        {
            content.Contents = Regex.Replace(content.Contents, main.Header, string.Format("<a href='{0}' target='_blank' style='{1}'>{2}</a>", "ViewArticle.aspx?Code=" + main.ArticleCode, blueWordStyle, main.Header));
        }
    }
}

它在content.Contents

中给出了错误

1 个答案:

答案 0 :(得分:0)

你必须创建Regex对象,在你的操作之后你必须为它们分配null以便它们可用于GC,用以下内容替换你的内部foreach代码。

    Regex objRegex = new Regex(main.Header); 
    content.Contents =  objRegex.Replace(content.Contents, string.Format("<a href='{0}' target='_blank' style='{1}'>{2}</a>", "ViewArticle.aspx?Code=" + main.ArticleCode, blueWordStyle, main.Header));
    objRegex = null;