当前位置: 首页 > 编程语言 > C#

在LINQ OrderBy中使用或First()分享

时间:2023-04-11 01:22:26 C#

C#学习教程:在LINQOrderBy中使用orFirst()曲目的标题排列了一系列专辑。有没有我可以做的类似下面的事情(记住我需要使用接受字符串的OrderBy扩展方法)?albums.OrderBy("Discs[0].Tracks[0].Title")我需要能够使用字符串表达式进行排序,所以我需要使用OrderBy方法,即albums.OrderBy("Track[0]。标题”)。原因是我们的自定义框架使用从GridView传回的排序表达式(例如“Title”),它在字典(例如“Track[0].Title”)中查找以获取正确的orderby子句。也就是说,排序字段和方向是在运行时动态确定的。albums.OrderBy("Discs.First().Tracks.First().Title")未经测试,但怎么样:varquery=fromalbuminalbumsletdisc=album.Discs.First()lettrack=disc.Tracks.First()orderbytrack.Title选择专辑;LINQ有两种查询“from.in..”和Lambda表达式的方法。他们几乎把它写成了Lambda-ish。这将是Lambda表达式:albums.OrderBy(A=>a.Discs.First().Tracks.First().Title)我使用变量“a”来表示专辑,但您可以使用任何变量,这是与第一个相同的表达式:albums.OrderBy(Albums=>album.Discs.First().Tracks.First().Title)或者您可以像其他答案一样使用objforms的objforms。如何满足您对不执行排序的初始查询的需求?这使用匿名类型来存储专辑信息和第一首曲目的名称,以便您稍后对其进行排序。varquery=fromalbuminalbumsletdisc=album.Discs.First()lettrack=disc.Tracks.First()selectnew{Album=album,FirstTrack=track.Title};varsortedQuery=fromalbuminqueryorderbyalbum.FirstTrackselectalbum.Album;抱歉,伙计们,我正在询问和尝试使用的OrderBy方法似乎特定于我们正在使用的ORM(genom-e),并且没有反映在.netQueryable或IEnumerable类上(与最大的Most类相同)genom-e的LINQ是不同的)函数)。.net中没有接受字符串的OrderBy重载,这是特定于genom-e的。那些使用.net遇到类似问题的人应该尝试上面两个答案中的任何一个。以上就是C#学习教程:LINQOrderBy或First()分享的全部内容,如果对你有用,还需要进一步了解C#学习教程,希望大家多多关注——本文收集自上网,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: