我有以下代码:
var currentCity = db.City.Find(player.Location);
switch (TravelTo) {
case 1:
costs = currentCity.TravelCost.City1;
break;
case 2:
costs = currentCity.TravelCost.City2;
break;
case 3:
costs = currentCity.TravelCost.City3;
break;
case 4:
costs = currentCity.TravelCost.City4;
break;
case 5:
costs = currentCity.TravelCost.City5;
break;
}
有没有更好的方式获取成本值?有没有办法可以更改要调用的字符串的名称?所以我可以创建类似的东西
costs = currentCity.TravelCost.City[TravelTo]
或者类似的东西?我觉得我写了一个不必要的 switch 语句,但我对 C# 的了解还不足以提出替代方案。
谢谢,
最佳答案
鉴于您拥有那些 City1..n
列和属性名称,确实没有更好的方法。但您至少可以将此 switch 语句放在 TravelCost
实体中。 IE。您可能有一个方法 public int TravelCost.GetCostByCity(int city)
,其中包含讨厌的 switch 语句。
关于c# - 如何从具有交替名称的字符串中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16585968/