Um eindeutige Werte zu erhalten, benötige ich eine IEnumerable.
var results = gridData.Select(r => r.ExplicitColumnName).Distinct();
Um den Spaltennamen zur Laufzeit zu bestimmen, muss ich eine IQueryable verwenden, wie von System.Linq.Dynamic gefordert.
var results = gridData.AsQueryable().Select(columnNameIsInThisVar);
Ich möchte, dass meine Methode json so figurierte Liste von Zeichenfolgen zurückgibt und diese dann in ein JsonResult lädt. Ich habe jedoch Probleme, sowohl unterschiedliche Werte als auch Laufzeitflexibilität für Spalten zu erhalten.
Ich denke also, meine Frage ist in LINQ, wie mache ich das?
List<string> results = $"select distinct {columnName} from ridiculous_table_with_100_columns";
Update 1
Laut Kommentar habe ich jetzt dynamisches Linq als Nuget-Paket installiert, kann aber immer noch nicht in List konvertieren.
filterValues = gridData.AsQueryable().Select(columnName).Distinct();
Dadurch erhalte ich die Meldung "Typ 'System.Linq.IQueryable' kann nicht implizit in 'System.Collections.Generic.List' konvertiert werden. Eine explizite Konvertierung ist vorhanden (fehlt eine Besetzung?)"
Sie könnten dies mit Reflexion tun
var results = gridData.Select(r => r.GetType().GetProperty(colName).GetValue(r)).Distinct();