我如何在Linq表达式中使用数组索引?

时间:2016-10-01 13:19:28

标签: c# linq

我有一个班级

public class SizesClass
    {
        public int Sizeid { get; set; }
        public string SizeNumbers { get; set; }

    }

SizeNumbers中的数据类似于20*20*30 那么我有一个这个类的列表,我希望通过其中一个数字来订购。

var orderByDescending = Sizes.OrderBy(x => x.SizeNumbers.Split('*')[2]);

但是var orderByDescending变成了null并且exeption说

The LINQ expression node type 'ArrayIndex' is not supported in LINQ to Entities.

1 个答案:

答案 0 :(得分:1)

也许这个?

var orderByDescending = Sizes.AsEnumerable.OrderBy(x => x.SizeNumbers.Split('*')[2]);

因为LINQ to Entities不支持' ArrayIndex'我们需要将所有数据加载到内存中,我们可以使用AsEnumerable()(或使用ToList())来实现,然后我们就可以在内存集合中完成所有顺序。