我在尝试演员或进行正确的转换时遇到了一些麻烦。
我有类型IQueryable<T>
T的查询是一个类:
var query = (from x in query
group x by US.FirstName into g
select g).Distinct();
我收到此错误:
无法将
System.Linq.IQueryable<System.Link.IGrouping<string,T>>
类型隐式转换为System.Linq.IQueryable<T>
。&gt;&gt;
我想要执行的事实是返回查询的唯一值。
答案 0 :(得分:1)
vQuery = vQuery.GroupBy(x => x.FirstName)
.Select(g => g.First());
但这是相当随意的:你应该OrderBy
或OrderByDescending
.Select(g => g.OrderBy(x => x.WhatEverYouWant).First())
找到“你的”语法
vQuery = (from US in vQuery
group US by US.FirstName into g
select g.First())
答案 1 :(得分:0)
在LINQ中执行分组时,实际上会返回IGrouping<TKey, TValue>
的集合。您正尝试将此结果放回到您为原始查询vQuery
定义的变量中,该变量的类型为IQueryable<T>
。您需要将LINQ查询的结果放入类型为IGrouping<TKey, TValue>
的单独变量中:
var groupedValues = (from US in vQuery
group US by US.FirstName into uniqueFirstName
select uniqueFirstName).Distinct();