我需要优化广泛使用 linq 的大型应用程序。许多 linq 语句在 linq 扩展方法中创建匿名对象。一个例子 :-
// custom sort order
var sortedData = data.OrderBy(x => (new List<string>() {"Orange", "Apple", "Pear" }).IndexOf(x.Name));
foreach (var d in sortedData) {
....
问题是每次迭代都会创建一个新列表。
是否可以设置一个编译器标志来让编译器进行一些静态分析并将循环不变代码提取到循环之外?