Vb.net Linq查询检查与列表(字符串)
如何从Linq查询中检查字符串值列表 _extnsn是一个字符串列表,其值为.bmp、.jpg、.tga、 我想通过Linq查询获得这些类型的文件,因此我尝试如下:Vb.net Linq查询检查与列表(字符串),vb.net,linq,Vb.net,Linq,如何从Linq查询中检查字符串值列表 _extnsn是一个字符串列表,其值为.bmp、.jpg、.tga、 我想通过Linq查询获得这些类型的文件,因此我尝试如下: dim _FileCOllections = From _file In _dirInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly) Where _extnsn.All(Function(xf) _file.Extension.ToLower = xf.ToLower)
dim _FileCOllections = From _file In _dirInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly)
Where _extnsn.All(Function(xf) _file.Extension.ToLower = xf.ToLower)
Order By _file.FullName Ascending
Select _file
返回值为nothing。显然,您有一个DirectoryInfo对象和一系列文件扩展名作为字符串。您希望查询只保留目录中扩展名与其中一个文件扩展名匹配的文件
DirectoryInfo _dirInfo = ...
IEnumerable<string> fileExtensions = ...
IEnumerable<FileInfo> filesWithDesiredExtensions = _dirInfo.EnumerateFiles()
.Where(fileInfo => fileExtensions.Contains(fileInfo.Extension));
哎呀。我看到你想要它在VB中!对不起,这可能对C阅读器有用
顺便问一下,你看到我用了而不是GetFiles吗?这样做的好处是,如果您只需要FirstOrDefault,或者可能需要Take2,则不必获取所有文件信息。只是一个优化
您确定要使用_extnsn.All吗?对我来说,这听起来像是你的意思米夏维德曼
我刚把所有的都改成了任何的
这对我来说很好,我可以得到这些特定的扩展图像集合。。。谢谢Micha Wiedenmann和all.如果您加入扩展名为xf的列表,则应该使用该功能。您确定要使用_extnsn.all吗?对我来说,听起来你的意思是,谢谢antdc和Micha Wiedenmann…Any工作得很好哦datz太好了。。。我现在更改了我的代码_dirInfo.EnumerateFiles,因此我们将获得比getfiles更快的方法。我是否正确!!!!
Dim _exntsn As New List(Of String) From {".jpg", ".png", ".tga", ".tif"}
_FileCOllections = From _file In _dirInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly)
Where _exntsn.Any(Function(k) k.ToLower = _file.Extension.ToLower)
Order By _file.FullName Ascending
Select _file