Disitinct Dynamic Linq
Чтобы получить отличительные значения, мне нужен IEnumerable.
var results = gridData.Select(r => r.ExplicitColumnName).Distinct();
Чтобы определить имя столбца во время выполнения, мне нужно использовать IQueryable, как того требует System.Linq.Dynamic.
var results = gridData.AsQueryable().Select(columnNameIsInThisVar);
Я хочу, чтобы мой метод возвращал json с таким списком строк и загружал его в JsonResult. Но у меня проблемы с получением как отдельных значений, так и гибкости во время выполнения для столбца.
Итак, я думаю, мой вопрос в LINQ, как мне это сделать?
List<string> results = $"select distinct {columnName} from ridiculous_table_with_100_columns";
Обновление 1
Согласно комментариям, я теперь установил динамический Linq как пакет nuget, но я все еще не могу преобразовать в List.
filterValues = gridData.AsQueryable().Select(columnName).Distinct();
Что вызывает у меня "Не могу неявно преобразовать тип" System.Linq.IQueryable "в" System.Collections.Generic.List ". Существует явное преобразование (вы пропустили приведение?)"
1 ответ
Вы могли бы сделать это с отражением
var results = gridData.Select(r => r.GetType().GetProperty(colName).GetValue(r)).Distinct();