次の個別の文字列のリストがあります。
「A」
「B」
「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風の方法にもオープンです:)