循环选项

时间:2012-09-26 17:16:26

标签: c# list loops

我有一个显示一些数据的WPF应用程序,并改变其单位,例如'x' - > 'y' - > 'z' - >每当用户点击它时'x'。实现这一目标的最佳方式是什么?

p.s。:我在这里看到了有关循环的问题,使用foreach,但只要列表结束,它们就不会回到第一个选项。

2 个答案:

答案 0 :(得分:2)

您可以循环浏览集合并通过保留集合以及当前位置返回到开头。例如,使用以下值:

int currentUnit = 0;
List<string> units = new List<string>() { "x", "y", "z" };

您可以通过以下方式“点击”“循环”:

string GetNextUnit()\
{
    if (++currentUnit == units.Count) current = 0;
    return units[currentUnit];
}

答案 1 :(得分:1)

创建一个enum来保存单位。

public enum Units
{
    Kms,
    Miles,
    Knots
}

拥有持有当前单位的财产

public Units CurrentUnit { get; set; }

然后当用户点击按钮时,循环显示单位以获得下一个单位。

if (CurrentUnit == Enum.GetValues(typeof(Unit)).Cast<Unit>().Last())
{
    CurrentUnit = Unit.km;
}
else
{
    CurrentUnit = (Unit) (int) CurrentUnit + 1;
}

可能有一种更好的循环方式,但我现在想不到。这样就可以了。