如何将类编码为C#Hashtable?

时间:2013-05-24 16:42:37

标签: c# class hashtable

我正在使用将HashtableArrayList转换为JSON的其他库。我想对此库使用常规List<T>,因此需要将此类列表转换为ArrayList

说我有一个类如下的课程:

public class Foo
{
     public int MyInt;
     public string MyString;
     public List<float> MyList;
}

如何将此类的实例转换为Hashtable,其中Hashtable的键是类变量名,而Hashtable的值是实例的值?另外,我想在此List<T>中将ArrayList个类变量编码为Hashtable

我试过这个开始:

private Hashtable convertModelInstanceToHashtable<T>(T instance)
{
    Hashtable encodedTable = new Hashtable();
    var fieldNames = typeof(T).GetFields()
                              .Select(field => field.Name)
                              .ToList();

    foreach(var fieldName in fieldNames)
    {
        var encodedValue = fieldName.GetValue(instance);

        // NEED HELP HERE: statement for type to convert
        // List<T> to ArrayList

        encodedTable.Add(fieldName.ToString(), encodedValue);
    }

    return encodedTable;
}

这开始有意义吗?这是最好的方法吗?我不确定如何为类型实现switch语句,尤其是List类型。

0 个答案:

没有答案