我尝试使用通用方法进行分组,但是我尝试它的方式给出了以下错误:
方法&System; .Linq.Enumerable.OrderBy的类型参数 (System.Collections.Generic.IEnumerable, System.Func)'无法从使用中推断出来。尝试 明确指定类型参数。
通过该方法删除组是正常的,我唯一缺乏的是让它可以分组。
target="/home/walia6/Math/fib"
os.execute("echo 1 > "..target)
os.execute("echo 1 >> "..target)
while true do
local handle = io.popen("wc -l < "..target)
ct = handle:read("*a")
handle:close()
os.execute("echo "..ct)
tmp=("sed -n "..(ct-1).."p "..target)
--os.execute("echo '"..tmp.."'")
local handle = io.popen(tmp)
pn = handle:read("*a")
handle:close()
tmp=("sed -n "..(ct-0).."p "..target)
--os.execute("echo '"..tmp.."'")
local handle = io.popen(tmp)
cn = handle:read("*a")
handle:close()
os.execute("echo "..(string.format("%.0f",cn+pn)).." >>"..target)
end
答案 0 :(得分:2)
您正在对您的收藏进行分组,因此您不再拥有IQueryable<TEntity>
,而是IQueryable<IGrouping<TType, TEntity>>
。您需要更新select
和orderBy
类型,以正确反映您正在做的事情。这是一个有效的例子:
public class Thing<TEntity>
{
public IQueryable<TEntity> EntitySet = new TEntity[0].AsQueryable();
public List<T> FilterPagerGroup<T, TType>(
Expression<Func<TEntity, bool>> where,
Expression<Func<IGrouping<TType, TEntity>, T>> select, int skip, int take,
Expression<Func<IGrouping<TType, TEntity>, TType>> orderBy,
Expression<Func<TEntity, TType>> groupBy)
{
List<T> result;
result = EntitySet.Where(where).GroupBy(groupBy).OrderBy(orderBy).Skip(skip).Take(take).Select(select).ToList();
return result;
}
}
请注意,此方法的调用者也需要更新才能在IGrouping<TType, TEntity>
上运行,而不仅仅是TEntity
。