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