Есть ли лучший способ вернуть следующий элемент в списке и выполнить цикл с конца вперед?

У меня есть следующий список различных строк:

"A"
"Б"
"C"

Если я хочу элемент после A, я получаю B. После B я получаю C. После C я получаю A. В настоящее время у меня есть следующий код, но по какой-то причине мне кажется, что есть может быть, лучше сделать это (? ).

private string GetNext(IList<string> items, string curr)
{
    if (String.IsNullOrWhitespace(curr))
        return items[0];

    var index = items.IndexOf(curr);
    if (index == -1)
        return items[0];

    return (index + 1 == items.Count) ? items[0] : items[index + 1];
}

Я определенно открыт для LINQ -подобного способа сделать это:)

8
задан Ben 26 January 2013 в 12:32
поделиться