【问题标题】:Convert object to integer in hashtable [closed]将对象转换为哈希表中的整数[关闭]
【发布时间】:2013-12-25 04:28:39
【问题描述】:
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);
            }
        }

【问题讨论】:

  • 一切都来自对象......所以这没有帮助。你想在这里实现什么?你到底在存储什么?
  • 我在我的类中添加了我的类对象我有整数
  • 投票结束:不清楚你在问什么

标签: c# hashtable


【解决方案1】:

试试这样的:

foreach (DictionaryEntry i in hashtable)
{
   if (i.Value is Ülke)
   {
       Ülke x = (Ülke)i.Value;
       Console.WriteLine(" " + x.Ülke + " " + x.nüfus);
   }
 }

【讨论】:

  • 它有效!非常感谢
【解决方案2】:

假设最初存储的项目是 Integer 类型,您可以将其转换为 (Integer) 并像使用 int 一样使用它(Java 会为您自动拆箱)。

Console.WriteLine(" " + (Integer)(i).Key + " " + i.Value);

你在这里冒险,因为如果你没有存储一个整数,你会得到一个运行时错误。

【讨论】:

    【解决方案3】:

    您可以使用运算符 is 或尝试将您的对象显式转换为 string/int/etc。但这不是一个好习惯 - 使用 Hashtable。您应该使用像 Dictionary 这样的泛型类型。

    【讨论】:

      猜你喜欢
      • 2017-11-24
      • 1970-01-01
      • 2015-01-04
      • 2017-06-09
      • 2011-06-29
      • 1970-01-01
      • 2022-09-29
      • 2011-01-17
      • 2020-09-15
      相关资源
      最近更新 更多