在哈希表中将对象转换为整数

时间:2013-12-07 22:09:56

标签: c# hashtable

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);
            }
        }

3 个答案:

答案 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);
   }
 }