我有一个包含结构的Hashtable,我试图使用foreach循环来访问每个结构中的元素。但是输出只会给我值标题,而不是让我获取其中的数据。当我尝试使用CityDetail.City时,它只会提供存储在CityDetail中的最新项目,而不是检查Hashtable。感谢您对如何处理此问题的任何建议表示感谢。
Hashtable CityDataHT = new Hashtable();
CityData CityDetail = new CityData();
for(int i = 0; i <10; i++)
{
//code for getting the various elements for city detail
CityDetail.City = SplitCity[0];
CityDetail.Region = SplitCity[1];
CityDetail.Country = SplitCity[2];
CityDetail.Latitude = Latitude;
CityDetail.Longitude = Longitude;
CityDataHT.Add(Convert.ToString(i), CityDetail);
}
foreach (int k in CityDataHT.Keys)
{
Console.WriteLine(CityDataHT[k]);
// this line just gives the value title - IP_Project+CityData
}
public struct CityData
{
public string City, Region, Country, Latitude, Longitude, Distance;
public CityData(string p1, string p2, string p3, double p4, double p5, Int32 p6)
{
City = p1;
Region = p2;
Country = p3;
Latitude = Convert.ToString(0);
Longitude = Convert.ToString(1);
Distance = Convert.ToString(2);
}
}
答案 0 :(得分:1)
为了让你的循环打印其他内容,你需要定义要打印的内容:
foreach (int k in CityDataHT.Keys)
{
CityData city = (CityData)CityDataHT[k];
Console.WriteLine(
city.City + " - " +city.Country
);
// Prints "City - Country"
}