C# 是否可以将Linq语句的一部分放入变量中?

C# 是否可以将Linq语句的一部分放入变量中?,c#,linq,variables,C#,Linq,Variables,我来自Perl,使用C和Linq完成第一步。 我的问题是,是否有一种方法可以将Linq语句的一部分放在一个变量中,就像下面的代码一样,只是为了简短的说明,而不是为了使用它而测试,这样做比每次编写新的Linq语句更容易、更灵活。还可以对同一MQuery使用不同的Order语句选择大小写、数组 var orderstatement = "orderby m.Reihenfolge ascending, m.Datum descending, m.Titel ascending";

我来自Perl,使用C和Linq完成第一步。 我的问题是,是否有一种方法可以将Linq语句的一部分放在一个变量中,就像下面的代码一样,只是为了简短的说明,而不是为了使用它而测试,这样做比每次编写新的Linq语句更容易、更灵活。还可以对同一MQuery使用不同的Order语句选择大小写、数组

var orderstatement = "orderby m.Reihenfolge ascending, m.Datum descending, m.Titel ascending";

var MQuery = (from m in _context.Movie
               orderstatement
               where m.Sichtbar == true && m.Gesperrt == false
               select m;

谢谢你的建议。

你可以用扩展方法尝试类似的方法。首先,通过movies方法定义order

public static IQueryable<Movie> OrderMovies(this IQueryable<Movie> movies) {
         return movies.OrderBy(m => m.Reihenfolge).ThenByDescending(m => m.Datum).ThenBy(m => m.Title);
}

是的。你应该了解。这能回答你的问题吗?OrderBy是的,但最好发布更多细节和样品。LINQ从一开始就是复杂的东西。
var movies = _context.Movies.Where(m => m.Sichtbar == true && m.Gesperrt == false).OrderMovies().Select(m => m)