优化我的方法

Mik*_*ole 1 c#

我正在尝试创建一个实用程序方法来在模板文件上执行类似邮件合并的功能.由于字符串是不可变的,我不确定我是否已正确编写 - 有人可以看一眼并给我反馈吗?

public static string LoadTemplateFile(string fileName, 
                                      NameValueCollection  mergeFields)
{
    string result = System.IO.File.ReadAllText(fileName);

    if (mergeFields != null)
    {
        for (int index = 0; index < mergeFields.Count; index++)
        {
            result = result.Replace(mergeFields.Keys[index], 
                                    mergeFields[index]);
        }
    }

    return result;
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*son 10

您可能最好使用StringBuilder而不是字符串.

public static string LoadTemplateFile(
    string fileName, NameValueCollection  mergeFields)
{    
    System.Text.StringBuilder result = new System.Text.StringBuilder(
        System.IO.File.ReadAllText(fileName));

    if (mergeFields != null)
    {
        for (int index = 0; index < mergeFields.Count; index++)
        {
            result.Replace(mergeFields.Keys[index], 
                                    mergeFields[index]);
        }
    }

    return result.ToString();
}
Run Code Online (Sandbox Code Playgroud)