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();
Другие вопросы по тегам