无法从IEnumerable <T>转换为IEnumerable <T>

麦古德里克

我最近进入了一个前端编程世界,但是正在回到C#中从事我正在从事的项目。我正在定义一些模型和通用功能,并遇到以下错误:

错误3参数2:无法从'System.Collections.Generic.IEnumerable<T>[c:\ Program文件(x86)\参考程序集\ Microsoft \ Framework.NETFramework \ v4.5 \ mscorlib.dll]转换为'System.Collections.Generic.IEnumerable<T>[c:\ Program Files(x86)\参考程序集\ Microsoft \ Framework.NETFramework \ v4.5 \ mscorlib.dll]”

错误来自以下函数中的return语句:

public static PagedResult<T> Create<T, TEntity>(IOrderedQueryable<TEntity> query, PagedRequest pagedRequest, Func<TEntity, T> converter)
        where T : class
    {
        var count = query.Count();

        if (pagedRequest.SortInfo.Fields.Any())
        {
            var firstPass = true;
            foreach (var sortOrder in pagedRequest.SortInfo.Fields)
            {
                if (firstPass)
                {
                    firstPass = false;
                    query = sortOrder.Direction == SortDirection.Ascending
                                ? query.OrderBy(sortOrder.Field) :
                                  query.OrderByDescending(sortOrder.Field);
                }
                else
                {
                    query = sortOrder.Direction == SortDirection.Ascending
                                ? query.ThenBy(sortOrder.Field) :
                                  query.ThenByDescending(sortOrder.Field);
                }
            }
        }

        query = (IOrderedQueryable<TEntity>) query.Skip((pagedRequest.Page - 1) * pagedRequest.PageSize).Take(pagedRequest.PageSize);

        var list = new List<T>();
        foreach (var entity in query)
        {
            list.Add(converter(entity));
        }

        return Create(pagedRequest, list.AsEnumerable(), count);
    }

和创建功能:

static public PagedResult<T> Create(PagedRequest request, IEnumerable<T> data, long totalCount)
    {
        var result = new PagedResult<T> {Status = ResultStatus.Successful, Data = data.ToArray()};

        result.Count = result.Data.Count();
        result.TotalCount = totalCount;

        result.Page.Index = request.Page;
        result.Page.Size = request.PageSize;
        if (result.Page.Size > 0)
        { result.Page.Count = (long)Math.Ceiling((double)totalCount / result.Page.Size); }

        return result;
    }

似乎无法获得编译时错误。有人对如何解决此问题有任何想法吗?

麦古德里克

感谢@JeffMercado,该解决方案非常简单。

我的第二个Create函数的方法签名必须为:

static public PagedResult<T> Create<T>(PagedRequest request, IEnumerable<T> data, long totalCount)

代替:

static public PagedResult<T> Create(PagedRequest request, IEnumerable<T> data, long totalCount)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将IEnumerable <T>的类型隐式转换为IEnumerable <T>

来自分类Dev

无法在实体框架中将 IEnumerable<int> 转换为 List<T>

来自分类Dev

将IObservable <IEnumerable <T >>转换为IEnumerable <IObservable <T >>

来自分类Dev

将IObservable <IEnumerable <T >>转换为IEnumerable <IObservable <T >>

来自分类Dev

将数组转换为IEnumerable <T>

来自分类Dev

从IEnumerable <T>隐式转换为MyCollection

来自分类Dev

从IEnumerable <T>隐式转换为MyCollection

来自分类Dev

可无损地转换为ienumerable <t>

来自分类Dev

将IEnumerable <IGrouping <T,K >>转换为IEnumerable <K>

来自分类Dev

使用反射将IEnumerable转换为IEnumerable <T>

来自分类Dev

如何使用动态数据将 IEnumerable 转换为 IEnumerable<T>

来自分类Dev

以最大的并行度将IEnumerable <T>转换为IObservable <T>

来自分类Dev

如何将IEnumerable(无类型)转换为IQueryable <T>?

来自分类Dev

将IEnumerable <T>转换为动态生成的对象的集合

来自分类Dev

将IEnumerable <T>转换为动态生成的对象的集合

来自分类Dev

如何将IEnumerable(无类型)转换为IQueryable <T>?

来自分类Dev

从IEnumerable <T>转换为DataTable的有效方法

来自分类Dev

如何将IEnumerable <AnonymousType>转换为List <T>?

来自分类Dev

无法从“ IEnumerable”转换为“ IEnumerable”

来自分类Dev

无法将类型'System.Collections.Generic.IEnumerable <AnonymousType#1>'隐式转换为'System.Collections.Generic.IEnumerable <T>

来自分类Dev

如何将IObservable <IObservable <T >>转换为IObservable <IEnumerable <T >>?

来自分类Dev

当T为IEnumerable <TP>时,将类型T的通用参数转换为List <TP>

来自分类Dev

为什么需要将IDictionary <T,HashSet <S >>强制转换为IDictionary <T,IEnumerable <S >>?

来自分类Dev

为什么需要将IDictionary <T,HashSet <S >>强制转换为IDictionary <T,IEnumerable <S >>?

来自分类Dev

IEnumerable <T>与IReadOnlyList <T>

来自分类Dev

List <T>与IEnumerable <T>

来自分类Dev

List <T>与IEnumerable <T>

来自分类Dev

为什么将枚举数组强制转换为两种不同的IEnumerable <T>类型?

来自分类Dev

用ienumerable <T>实现ienumerable

Related 相关文章

  1. 1

    无法将IEnumerable <T>的类型隐式转换为IEnumerable <T>

  2. 2

    无法在实体框架中将 IEnumerable<int> 转换为 List<T>

  3. 3

    将IObservable <IEnumerable <T >>转换为IEnumerable <IObservable <T >>

  4. 4

    将IObservable <IEnumerable <T >>转换为IEnumerable <IObservable <T >>

  5. 5

    将数组转换为IEnumerable <T>

  6. 6

    从IEnumerable <T>隐式转换为MyCollection

  7. 7

    从IEnumerable <T>隐式转换为MyCollection

  8. 8

    可无损地转换为ienumerable <t>

  9. 9

    将IEnumerable <IGrouping <T,K >>转换为IEnumerable <K>

  10. 10

    使用反射将IEnumerable转换为IEnumerable <T>

  11. 11

    如何使用动态数据将 IEnumerable 转换为 IEnumerable<T>

  12. 12

    以最大的并行度将IEnumerable <T>转换为IObservable <T>

  13. 13

    如何将IEnumerable(无类型)转换为IQueryable <T>?

  14. 14

    将IEnumerable <T>转换为动态生成的对象的集合

  15. 15

    将IEnumerable <T>转换为动态生成的对象的集合

  16. 16

    如何将IEnumerable(无类型)转换为IQueryable <T>?

  17. 17

    从IEnumerable <T>转换为DataTable的有效方法

  18. 18

    如何将IEnumerable <AnonymousType>转换为List <T>?

  19. 19

    无法从“ IEnumerable”转换为“ IEnumerable”

  20. 20

    无法将类型'System.Collections.Generic.IEnumerable <AnonymousType#1>'隐式转换为'System.Collections.Generic.IEnumerable <T>

  21. 21

    如何将IObservable <IObservable <T >>转换为IObservable <IEnumerable <T >>?

  22. 22

    当T为IEnumerable <TP>时,将类型T的通用参数转换为List <TP>

  23. 23

    为什么需要将IDictionary <T,HashSet <S >>强制转换为IDictionary <T,IEnumerable <S >>?

  24. 24

    为什么需要将IDictionary <T,HashSet <S >>强制转换为IDictionary <T,IEnumerable <S >>?

  25. 25

    IEnumerable <T>与IReadOnlyList <T>

  26. 26

    List <T>与IEnumerable <T>

  27. 27

    List <T>与IEnumerable <T>

  28. 28

    为什么将枚举数组强制转换为两种不同的IEnumerable <T>类型?

  29. 29

    用ienumerable <T>实现ienumerable

热门标签

归档