0

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

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

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

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

4

4 回答 4

3

我将创建一个包含两列的简单表:internal_name 和 display_name。当您想显示事物的用户友好名称时,请加入该表。

我认为映射属于数据库中的数据被映射。

于 2013-08-23T01:54:00.737 回答
3

由于没有直接相关性(例如,您不能只将第一个字母大写),您可以使用 Generic Dictionary<string, string>,键为 DB 字符串,Value - 用户可见字符串。

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

myList.Add("acura", "Acura"); // myList["acura"] == "Acura"
于 2013-08-23T01:54:13.500 回答
0

考虑使用元组

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 
}
于 2013-08-23T01:53:45.670 回答
0

如果您只想要一种语言/文化,即英语/美国,我会选择 Yuriy 的回答。我提到文化和语言,因为汽车名称和品牌因国家/地区而异,即使是说英语的人也是如此。

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

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

于 2013-08-23T02:28:33.253 回答