mercredi 1 août 2018

Linq Select dynamicly from generic

I want to get a list of each object from my List (except strings, ints etc). And then Invoke (generic, recursive method with reflection). The problem is I am iterating on the property names, and have no idea how to Select.

Error CS0021 Cannot apply indexing with [] to an expression of type 'T'

public static void My method<T>(IEnumerable<T> query)
{
    var t = typeof(T);
    var Headings = t.GetProperties();
    for (int i = iteratorStart; i < Headings.Count(); i++)
    {
        if (IsValue(Headings[i].PropertyType.FullName))
        {
        }
        else
        {
           Type type = Type.GetType(Headings[i].PropertyType.FullName);
           var mi = typeof(ExcelExtension);
           var met  = mi.GetMethod("ListToExcel");
           var genMet = met.MakeGenericMethod(type);

           var nested = query.Select(p => p[Headings[i].Name]);

           object[] parametersArray = new object[] { pck, nested, i };
           genMet.Invoke(null, parametersArray);
        }
    }
}





Aucun commentaire:

Enregistrer un commentaire