Чтобы получить отличительные значения, мне нужен IEnumerable.Disitinct Dynamic Linq
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";
Update 1
Согласно комментариям, я теперь установлен динамический Linq как пакет NuGet, но я до сих пор не может преобразовать в список.
filterValues = gridData.AsQueryable().Select(columnName).Distinct();
Который получает меня «не может неявно преобразовать тип„System.Linq.IQueryable“в„System.Collections.Generic.List“. Явное преобразование существует (вы пропали без вести бросок?)»
Добавляем 'Distinct' в конце (после' Select')? Динамический LINQ определяет 'Distinct' на' IQueryable'. –
Динамический Linq не предоставляет метод Distinct. После выбора возвращается IQueryable. Его нужно преобразовать в IEnumerable, но я не могу придумать, как это сделать, не создавая его вручную, итерации по IQueryable, и в этом случае я мог бы просто отфильтровать дубликаты самостоятельно. – twelveFunKeys
Я вижу 'public static IQueryable Distinct (этот источник IQueryable),' inside 'System.Linq.Dynamic.DynamicQueryable'. –