用于在ViewState中存储Key(多个值)的集合。我的数据类型为string Key
,List<string> Values
,即一个键可以具有一个或多个字符串值
说我有一些国家和城市需要保存在ViewState中。
我会
美国-纽约,哥伦比亚特区,芝加哥
加拿大-多伦多,温哥华,蒙特利尔
等
我想将此数据保存到ViewState,并想知道如何最好地保存而不创建自定义可序列化对象等。它们只是字符串。
我应该将它们另存为字符串键,用逗号分隔列表值吗?
答案 0 :(得分:0)
您可以使用注释中提到的字典,这将是尝试访问该集合中数据的最有效方法。您还可以像这样使用类集合:
import string
import itertools
from pyjarowinkler import distance
WORDS_CACHE = {}
def next_letter():
base = ""
while True:
for ch in string.ascii_lowercase:
yield base + ch
base += ch
GENERATOR = next_letter()
def encode(word):
if word not in WORDS_CACHE:
WORDS_CACHE[word] = GENERATOR.next()
return WORDS_CACHE[word]
def score(first_name, second_name):
return distance.get_jaro_distance(
"".join(map(encode, first_name.split())),
"".join(map(encode, second_name.split())),
)
在该类中,您尝试将其写入集合中,对于每个国家/地区,您都将使用国家/地区名称作为字符串调用一个新的国家/地区类别,然后将您的州或地区添加到列表中。然后,您可以将该类的实例添加到您的集合中。像这样:
public class CollectingData
{
public Collection<Countries> CollectCountries ;
public CollectingData()
{
CollectCountries = new Collection<Countries>
}
}
public class Countries
{
public string country { get; set;}
public List<string> states { get; set;}
}
您可以为要添加的每个国家/地区执行类似的操作。希望这可以帮助您。但是,词典路线肯定比这更快,更容易。
答案 1 :(得分:0)
似乎这个简单的数据可以存储在Dictionary<string, List<string>>
中。词典键将是州/地区,值将是城市列表。
您可以像这样初始化它
Dictionary<string, List<string>> locations = new Dictionary<string, List<string>>
{
{ "USA", new List<string> {"NY", "DC", "Chicago"}},
{ "Canada", new List<string> {"Toronto", "Vancouver", "Montreal"}},
};
然后使用该数据设置ViewState条目
ViewState["locs"] = locations;