0

我正在使用其他可以转换HashtableArrayListJSON 的库。我想在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 类型。

4

0 回答 0