我正在使用将Hashtable
和ArrayList
转换为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类型。