выполнять действия до один успешный?


как я могу улучшить этот код?

var to = "http://forum.";

if (!RedirectPermanent("http://www.", to))
    if (!RedirectPermanent("http://blog.", to))
        if (!RedirectPermanent("http://forum.", to))
            if (!RedirectPermanent("http://tracker.", to))
                if (!RedirectPermanent("http://wiki.", to))
                    RedirectPermanent("http://", to);

это способ

private bool RedirectPermanent(string from,string to)
{
    if (Request.Url.AbsoluteUri.StartsWith(from))
    {
        var domain = Request.Url.GetLeftPart(UriPartial.Authority).Replace(from, to);
        Response.RedirectPermanent(string.Concat(domain, Request.RawUrl));
        return true;
    }

    return false;
}


253
3
c#
задан 14 августа 2011 в 04:08 Источник Поделиться
Комментарии
2 ответа

Пошел на это:

var arr = new[] { "http://www.", "http://blog.", "http://forum.", "http://tracker.", "http://wiki.", "http://" };
var to = "http://forum.";

foreach (var from in arr)
{
if (RedirectPermanent(from, to))
break;
}

4
ответ дан 14 августа 2011 в 04:08 Источник Поделиться

Как вариация:

var arr = new[] { "http://www.", "http://blog.", "http://forum.", "http://tracker.", "http://wiki.", "http://" };   
var to = "http://forum.";

int i = 0;

while ((!RedirectPermanent(from[i], to)) && i < arr.Length)
{
i++;
}

0
ответ дан 14 августа 2011 в 05:08 Источник Поделиться