Je reçois l'exception mentionnée dans le titre à la ligne de codeC# non-concordance de comptage des paramètres de conversion Liste à DataTable
values[i] = Props[i].GetValue(item, null);
et je ne suis pas sûr de ce qui cause cela. Toute aide serait appréciée.
public static DataTable ToDataTable<T>(List<T> items)
{
DataTable dataTable = new DataTable(typeof(T).Name);
PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
var type = (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) ? Nullable.GetUnderlyingType(prop.PropertyType) : prop.PropertyType);
dataTable.Columns.Add(prop.Name, type);
}
foreach (T item in items)
{
var values = new object[Props.Length];
for (int i = 0; i < Props.Length; i++)
{
values[i] = Props[i].GetValue(item, null);
}
dataTable.Rows.Add(values);
}
return dataTable;
}
Quel type de données transmettez-vous? La méthode semble fonctionner correctement avec mes tests. Par exemple, voici avec une collection de base: https://dotnetfiddle.net/6RWBpz – Mun
Trouvé un article connexe avec un google rapide de votre sujet: https://stackoverflow.com/questions/32143085/parameter-count -mismatch-when-get-value-of-property-using-reflection –
Les données sont une liste de chaînes. –