我有一个数据库中的字符串列表,无法更改。
我需要将它们与用户可读的字符串交换,并且还能够从用户可读回到数据库字符串。
所以, “acura”=“讴歌”, “日产”=“日产”, “landrover”=“路虎”
我可以想到一些基于数组和列表的方法来做到这一点,但我想可能有一个更简单的方法。 这样做最简单的解决方案是什么?感谢
答案 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文件用于适当的文化,这是最容易实现的,或者它是动态使用您的数据库。