class Ülke : IComparable<Ülke>
{
public string ülke;
public int nüfus ;
public int sıra;
}
我在哈希表中添加了对象 但输出是Console.Application ... 我怎样才能将对象转换为int foreach不起作用
hashtable.Add(ülke.ülke, ülke);
foreach (DictionaryEntry i in hashtable)
{
if (i.Value is object)
{
Console.WriteLine(" " + i.Value);
}
}
答案是:
foreach (DictionaryEntry i in hashtable)
{
if (i.Value is Ülke)
{
Ülke x = (Ülke)i.Value;
Console.WriteLine(" " + x.ülke + " " + x.nüfus);
}
}
答案 0 :(得分:0)
假设最初存储的项目是Integer类型,您可以将其强制转换为(Integer)并像使用int一样使用它(Java将为您自动为它)。
Console.WriteLine(" " + (Integer)(i).Key + " " + i.Value);
您在这里冒风险,因为如果您没有存储整数,则会出现运行时错误。
答案 1 :(得分:0)
您可以使用operator is或尝试将您的对象显式转换为string / int / etc。但这不是一个好习惯 - 使用Hashtable。您应该使用像Dictionary这样的泛型类型。
答案 2 :(得分:0)
尝试这样的事情:
foreach (DictionaryEntry i in hashtable)
{
if (i.Value is Ülke)
{
Ülke x = (Ülke)i.Value;
Console.WriteLine(" " + x.Ülke + " " + x.nüfus);
}
}