我正在编写一个网格渲染管理器,并认为将所有使用相同着色器的网格分组然后在我使用该着色器时渲染这些网格是个好主意.
我目前正在使用foreach循环,但想知道利用LINQ是否可能会让我的性能提升?
我已经使用如下的Entityframework执行了linq查询
GroupMaster getGroup = null;
getGroup = DataContext.Groups.FirstOrDefault(item => keyword.IndexOf(item.Keywords,StringComparison.OrdinalIgnoreCase)>=0 && item.IsEnabled)
Run Code Online (Sandbox Code Playgroud)
执行此方法时,我得到如下的异常
LINQ to Entities无法识别方法'Int32 IndexOf(System.String,System.StringComparison)'方法,并且此方法无法转换为商店表达式.
默认情况下包含()方法区分大小写,所以我需要转换为lower.Is有任何方法检查除contains方法之外的字符串匹配,是否有任何方法来解决indexOf方法问题?
我正在使用LINQ to Entities从MSSQL数据库中获取元素,我需要它们按字符串的最后一个索引排序:
var data = db.GetEntities().
OrderBy(e=>e.StringProperty.LastIndexOf("Foo")).ToList()
Run Code Online (Sandbox Code Playgroud)
但是,LINQ to Entities不支持LastIndexOf.我试过寻找类似的问题,但我发现的只是这个并没有解决我的问题(订购).在MSDN上搜索没有产生任何结果.
使用LINQ to Entities实现这一目标的最简单方法是什么(我不想在之后执行此操作)ToList()).