有没有办法在没有FirstOrDefault的情况下从VB.NET LINQ子查询中获取TOP 1?

时间:2017-03-06 14:39:49

标签: vb.net linq subquery take

我有一个带有子查询的VB.NET LINQ查询,其目的是选择一个最匹配的项目。

    Dim queryOut = (From x In lstIOsMainStructuresCrossed
                        Let SearchedVersionID = (From qecm In lstExpectedCountMatch
                        Join qcm In lstCountMatch
                        On qecm.Version_id Equals qcm.Version_id And qecm.Expected_count_match Equals qcm.Count_match
                        Where qcm.Main_str_id = qecm.Main_str_id AndAlso qcm.IO_id = x.IO_id
                        Order By qcm.Count_match Descending
                        Select qcm.Version_id).FirstOrDefault
                    Select x.IO_id, x.Main_structure_id, SearchedVersionID).ToList

问题是FirstOrDefault会降低查询效率。我不能使用Take(1),因为它不会产生值。

有没有办法在没有FirstOrDefault方法的情况下获得TOP 1?

0 个答案:

没有答案