在vb.net中,如何在查询中使用带有特定文件名的目录信息

在vb.net中,如何在查询中使用带有特定文件名的目录信息,vb.net,Vb.net,假设我有一个用逗号分隔的文件列表 Dim listOfFiles As String() = filesPosted.Split(",") 我使用DirectoryInfo获取文件列表并将其发送到另一个数组 Dim files = New DirectoryInfo(StorageRoot) _ .GetFiles("*", SearchOption.TopDirectoryOnly) _ .Whe

假设我有一个用逗号分隔的文件列表

Dim listOfFiles As String() = filesPosted.Split(",")
我使用DirectoryInfo获取文件列表并将其发送到另一个数组

        Dim files = New DirectoryInfo(StorageRoot) _
                    .GetFiles("*", SearchOption.TopDirectoryOnly) _
                    .Where(Function(f) Not f.Attributes.HasFlag(FileAttributes.Hidden)) _
                    .Where(Function(f) filesPosted.Contains(f.Name)) _
                    .[Select](Function(f) New FilesStatus(f)).ToArray()
我面临的问题是,我需要我的条件更加严格。我会解释:

如果我的listOfFiles包含(abc.txt,xyz.txt),并且正在搜索的目录中有一个aabc.txt文件名,它将返回abc.txt和aabc.txt。我知道这是因为条款的这一部分:

.Where(Function(f) filesPosted.Contains(f.Name))
由于contains属性正在查找另一个文件。。。但我不想要它。我希望文件完全基于字符串()匹配

有没有更好的方法可以在不循环浏览每个文件的情况下执行此操作?一种更严格的方法使其成为“包含”的严格条件

谢谢你的帮助

试试看:

Dim listOfFiles As String() = filesPosted.Split(",").Select(function(f) f.ToLower())
' then
Dim files = New DirectoryInfo(StorageRoot) _
                .GetFiles("*", SearchOption.TopDirectoryOnly) _
                .Where(Function(f) Not f.Attributes.HasFlag(FileAttributes.Hidden)) _
                .Where(Function(f) listOfFiles.Any(function(l) l = f.Name.ToLower())) _
                .[Select](Function(f) New FilesStatus(f)).ToArray()
抱歉,可怜的C#到VB.Net的转换