.net 更正此LINQ指令语法

.net 更正此LINQ指令语法,.net,vb.net,linq,list,.net,Vb.net,Linq,List,我列出目录中的文件,并按文件扩展名对其进行排序: Dim Files As List(Of IO.FileInfo) = Get_Files(Directory, True, ValidExtensions).OrderBy(Function(x) x.Extension).ToList 如何在同一条指令中添加另一个参数,以便按照名称内容对其进行排序,如下所示: x.Name.ToLower.Contains("word") 我试着用逗号来分隔它(是的,太愚蠢了): 我尝试使用@p.s.w.

我列出目录中的文件,并按文件扩展名对其进行排序:

Dim Files As List(Of IO.FileInfo) = Get_Files(Directory, True, ValidExtensions).OrderBy(Function(x) x.Extension).ToList
如何在同一条指令中添加另一个参数,以便按照名称内容对其进行排序,如下所示:

x.Name.ToLower.Contains("word")
我试着用逗号来分隔它(是的,太愚蠢了):

我尝试使用@p.s.w.g解决方案,但没有返回所需的结果

但是,如果我分别列出两个列表,我会在第二个列表中得到所需的排序:

 Dim Files As List(Of IO.FileInfo) = _
Get_Files(Directory, True, ValidExtensions).OrderBy(Function(x) x.Extension).ToList

Dim Files2 As List(Of IO.FileInfo) = _
Files.OrderBy(Function(x) x.Name.ToLower.Contains("word")).ToList
但我只想在第一个列表中进行改进。

使用以下方法:

更新要使名称中不包含
“word”
的所有项目排在第一位,请使用以下命令:

Dim Files As List(Of IO.FileInfo) = _
    Get_Files(Directory, True, ValidExtensions) _
        .OrderBy(Function(x) x.Name.ToLower.Contains("word")) _
        .ThenBy(Function(x) x.Extension) _
        .ToList
当然,如有必要,您可以始终将
OrderBy
OrderByDescending
ThenBy
交换,以反转单个排序键的顺序。

使用以下方法:

更新要使名称中不包含
“word”
的所有项目排在第一位,请使用以下命令:

Dim Files As List(Of IO.FileInfo) = _
    Get_Files(Directory, True, ValidExtensions) _
        .OrderBy(Function(x) x.Name.ToLower.Contains("word")) _
        .ThenBy(Function(x) x.Extension) _
        .ToList

当然,如果有必要,您可以随时将
OrderBy
OrderByDescending
ThenBy
交换
OrderBy
,以反转单个排序键的顺序。

解决方案中@ppejovic的可能重复显示了ThenBy方法的用法,但我更新了我的问题,说该方法确实如此没有为我返回所需的结果,那么现在不是重复的问题。@ppejovic在解决方案中可能重复显示ThenBy方法的用法,但我更新了我的问题,说该方法没有为我返回所需的结果,那么现在不是重复的问题。谢谢,但是我已经尝试了代码,没有返回所需的排序,请查看我的update.ouch,就像更改属性顺序一样。。。再次感谢。@ElektroHacker很乐意帮忙。Happy coding:)谢谢,但我已经尝试了代码,没有返回所需的排序,请查看我的update.ouch,只需更改属性顺序。。。再次感谢。@ElektroHacker很乐意帮忙。快乐编码:)
Dim Files As List(Of IO.FileInfo) = _
    Get_Files(Directory, True, ValidExtensions) _
        .OrderBy(Function(x) x.Extension) _
        .ThenBy(Function(x) x.Name.ToLower.Contains("word")) _
        .ToList
Dim Files As List(Of IO.FileInfo) = _
    Get_Files(Directory, True, ValidExtensions) _
        .OrderBy(Function(x) x.Name.ToLower.Contains("word")) _
        .ThenBy(Function(x) x.Extension) _
        .ToList