任何人都可以帮助我如何优化这种方法吗?字符串替换方法的优化
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
VirtualPathData path = base.GetVirtualPath(requestContext, values);
if (path != null)
{
string virtualPath = path.VirtualPath;
string condition = string.Empty;
if (virtualPath.Contains("?"))
{
condition = virtualPath.Substring(virtualPath.IndexOf("?"));
virtualPath = virtualPath.Substring(0, virtualPath.IndexOf("?"));
}
virtualPath = virtualPath.Replace(@"%C5%BD", "ž");
virtualPath = virtualPath.Replace(@"%C4%90", "đ");
virtualPath = virtualPath.Replace(@"%C4%86", "ć");
virtualPath = virtualPath.Replace(@"%C4%8C", "č");
virtualPath = virtualPath.Replace(@"%C5%A0", "š");
virtualPath = virtualPath.ToLower().Replace(",", "-").Replace("%20", "-").Replace("&", "-");
virtualPath = virtualPath.Replace(@"-amp;", "&");
while (virtualPath.Contains("--"))
{
virtualPath = virtualPath.Replace("--", "-");
}
path.VirtualPath = virtualPath + condition;
}
return path;
}
您也可以将' - {2,}'表达式合并到另一个:'(,|%20 |&| - {2,})' – 2010-02-26 14:03:10
@Joel,我不能合并它,因为if我的输入是'foo&foo',输出将是'foo --- foo'。 – 2010-02-26 14:13:16