0
要獲得不同的值,我需要一個IEnumerable。Disitinct動態Linq
var results = gridData.Select(r => r.ExplicitColumnName).Distinct();
要在運行時決定列名,我需要使用System.Linq.Dynamic所需的IQueryable。
var results = gridData.AsQueryable().Select(columnNameIsInThisVar);
我想我的方法返回json所以計算字符串列表,然後加載到JsonResult。但是我在列上獲得不同的值和運行時靈活性時遇到了問題。
所以我想我的問題是,在LINQ中,我該如何做到這一點?
List<string> results = $"select distinct {columnName} from ridiculous_table_with_100_columns";
更新1
按照意見,我現在已經安裝了動態的LINQ作爲NuGet包,但我仍然不能轉換到列表。
filterValues = gridData.AsQueryable().Select(columnName).Distinct();
它得到了我一個「無法隱式轉換類型‘System.Linq.IQueryable’到‘System.Collections.Generic.List’。一個顯式轉換存在(是否缺少強制轉換?)」
通過在末尾添加'Distinct'(在'Select'之後)?動態LINQ在'IQueryable'上定義'Distinct'。 –
動態Linq不提供獨特的方法。選擇之後,返回一個IQueryable。它需要轉換爲IEnumerable,但我想不到通過迭代IQueryable手動構建它的方法,在這種情況下,我可能會自己過濾出重複項。 – twelveFunKeys
我看到'public static IQueryable Distinct(this IQueryable source);'System.Linq.Dynamic.DynamicQueryable'內部''。 –