将字符串换成另一个字符串的最佳做法换回来

时间:2013-08-23 01:49:24

标签: c#

我有一个数据库中的字符串列表,无法更改。

我需要将它们与用户可读的字符串交换,并且还能够从用户可读回到数据库字符串。

所以, “acura”=“讴歌”, “日产”=“日产”, “landrover”=“路虎”

我可以想到一些基于数组和列表的方法来做到这一点,但我想可能有一个更简单的方法。 这样做最简单的解决方案是什么?感谢

4 个答案:

答案 0 :(得分:3)

我将创建一个包含两列的简单表:internal_name和display_name。如果要显示用户友好的名称,请加入该表。

我认为映射属于数据库,并且数据正在映射。

答案 1 :(得分:3)

由于没有直接关联(例如,您不能只将首字母大写),您可以使用通用Dictionary<string, string>,其中键为DB字符串,值为用户可见字符串。

这样,字符串将始终保持同步并且易于定位。

myList.Add("acura", "Acura"); // myList["acura"] == "Acura"

答案 2 :(得分:0)

考虑使用Tuple

List<Tuple<string,string>> data = new ...
//Populate the data here
foreach(Tuple t in data)
{
    t.Item1="acura";  //Read and write 
    t.Item2="Acura";  //Read and write 
}

答案 3 :(得分:0)

如果你只想用一种语言/文化,即英语/美国,我会选择Yuriy的答案。我提到文化和语言,因为汽车名称和品牌因国家而异,即使是那些说英语的人。

如果您需要本地化,则需要基于资源的方法,其中数据库值用作资源字符串名称,友好名称用作资源字符串值。

如果列表是静态的,那么您可以将resx文件用于适当的文化,这是最容易实现的,或者它是动态使用您的数据库。