如果我一直在研究这个问题,我之前得到了一些帮助,并且用户说最好使用Dictionary
来存储我的Country
和Places
。
所以我创建了Dictionary
:
Dictionary<string, NewCountryClass> NTCD = new Dictionary<string, NewcountryClass>();
当用户单击该按钮时,它将触发此类,我希望它在运行时在newCountryClass
内创建Dictionary
的实例。它会添加newCountryTitle.Country
的字符串,然后添加Class
。
public void AddCountryCollection()
{
newCountryClass = new NewCountryClass(newCountry,"");
Collections.Add(newCountryClass);
NTCD.Add(newCountryClass.Country, newCountryClass);
}
因此,假设用户已添加Country
已在运行时创建此Dictionary
,并且他们已添加4 Countries
,但现在需要返回并在第二个国家/地区内添加Place
标签。
这是newCountryClass
:
private string _country;
public string Country
{
get { return _country; }
set
{
if (_country.Equals(value))
return;
_country= value;
RaisePropertyChanged(() => Country);
}
}
private ICollection<string> _places;
public ICollection<string> Places
{
get
{
if (_places== null)
_places= new ObservableCollection<string>();
return _places;
}
set
{
if (value == _places)
return;
_places= value;
RaisePropertyChanged(() => Places);
}
}
如果他们已经创建了4,并且他们想要将Place
添加到他们创建的第二个 Country
内的列表中,我该如何找到它?
答案 0 :(得分:1)
只需使用您存储的密钥:
NTCD["GER"].Places.Add("New Place inside GER");
如果您只想知道第二个,请选择List<NewCountryClass>
并使用for
按索引进行迭代,或者选择OrderedDictionary
。它将对象键,对象值作为参数添加,您可以通过NTCD[3]
访问它。
答案 1 :(得分:0)
您使用的是Dictionary
,因此项目处于特定索引时没有任何概念。相反,项目位于特定键,在您的情况下是您的Country
属性的值。
如果您想通过数字索引获取项目,则需要使用类似List的数据结构。