c# - 如何从具有交替名称的字符串中获取值?

标签 c#

我有以下代码:

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/

相关文章:

c# - ASP.net 简单设计题

c# - ModelMetaData、Custom Class Attributes 和一个难以描述的问题

c# - 字符串长度评估不正确

c# - 检查空变量

c# - 将每个日期范围内的金额拆分为每月/每年的金额

c# - Autofixture.Create<int> 可以返回负值吗?

c# - 当用户在c#中单击它时获取图像的来源

c# - 创建文件的文件路径,其中文件名每天都会更改

c# - 映射的网络驱动器,File.Exists 奇怪的行为

c# - 如何为整个 USB 驱动器制作校验和?