rus*_*der 39 c# linq powershell lambda
下面的代码片段从文件列表中检测到哪些文件是Ftp上的目录
作为C#,它将如下所示
var files = new List<string>(){"App_Data", "bin", "Content"};
var line = "drwxr-xr-x 1 ftp ftp              0 Mar 18 22:41 App_Data"
var dir = files.First(x => line.EndsWith(x));
Run Code Online (Sandbox Code Playgroud)
我如何在PowerShell中转换最后一行?
Rob*_*ves 60
像这样......
$files = @("App_Data", "bin", "Content")
$line = "drwxr-xr-x 1 ftp ftp              0 Mar 18 22:41 App_Data"
$dir = $files | Where { $line.EndsWith($_) } | Select -First 1
Run Code Online (Sandbox Code Playgroud)
最后一行的这些版本都将完成相同的操作:
$dir = @($files | Where { $line.EndsWith($_) })[0]
$dir = $files | Where { $line.EndsWith($_) } | Select -index 0
$dir = $files | Where { $line.EndsWith($_) } | Select -First 1
Run Code Online (Sandbox Code Playgroud)
        正如罗伯特·格罗夫斯(Robert Groves)所说,“选择对象-第一次出现”可以解决问题,您还可以使用-“最后一次出现”。
顺便说一句,就像其他任何静态.Net方法一样,您可以在Powershell中使用linq。
[Linq.Enumerable]::First($list)
[Linq.Enumerable]::Distinct($list)
[Linq.Enumerable]::Where($list, [Func[int,bool]]{ param($item) $item -gt 1 })
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           17791 次  |  
        
|   最近记录:  |