Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Linq查询检查与列表(字符串)_Vb.net_Linq - Fatal编程技术网

Vb.net 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)

如何从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)
    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