La siguiente función acepta un objeto, que a veces puede ser una matriz de un tipo determinado. En este caso, supongo que el tipo podría determinarse con obj [0] .GetType(), suponiendo que la matriz tiene al menos un miembro. Me gustaría convertir una matriz de este tipo a una lista genérica <T> del tipo apropiado, pero el siguiente código solo tiene éxito al convertir a la lista <objeto>. ¿Cómo puede hacerse esto?Convertir matriz de cualquier tipo a List <T> (C#)
public object GetDeserializedObject(object obj, Type targetType) { if (obj is Array) { List<object> obj2 = new List<object>(); for (int i = 0; i < ((Array)obj).Length; i++) { obj2.Add(((object[])obj)[i]); } obj = obj2; } return obj; }
Tenga en cuenta que GetSerializedObject() implementa una función que pertenece a la interfaz IDataContractSurrogate, así que no creo que pueda cambiar su firma como se muestra.
¿Qué pertenece en lugar del "..."? –
@nw: La clase en la que coloca el método 'ConvertArray' que Jon definió en. Es decir, si coloca el método' ConvertArray' en una clase llamada 'ArrayConverter', entonces reemplace''E' con 'ArrayConverter'. – jason
@Jon: 'TargetType' debe ser' Type'. – jason