Предположим, у меня есть метод, который получает коллекцию перечислений моего типа enum ProjectName
и имеет коллекцию Server
объектов, которые я хочу связать с этими ProjectName
s в типе с именем Project
;как бы я сделал это в Powershell Select-Object
(или в другом эквиваленте LINQ Select
).
C # -эквивалент того, что я хочу произвести в Powershell, таков:
var servers = new[]
{
new Server(/*someOtherProjectsCollection goes here*/),
new Server(/*someOtherProjectsCollection goes here*/),
new Server(/*someOtherProjectsCollection goes here*/)
};
var projects = GetProjectNames().Select(projectName => new Project(projectName, servers.Where(server => server.Projects.Any(serverProject => serverProject.Name == projectName))));
Но у меня есть следующее:
$servers = [Server]::new(/*someOtherProjectsCollection goes here*/), [Server]::new(/*someOtherProjectsCollection goes here*/), [Server]::new(/*someOtherProjectsCollection goes here*/)
$projects = (GetProjectNames()) | Select-Object {
$selectedProjectName = $_
return [Project]::new($_, ($servers | Where-Object { $_.projects.Where({ $_ -eq $selectedProjectName }).Count -gt 0 }))
}
Когда я пытаюсь прочитать $projects
в Powershell LSE (находясь в точке останова после этой последней строки), он просто возвращает код в виде строки иЯ даже не могу привести его к [Project[]]
.Я думаю, что проблема может заключаться в использовании фигурных скобок с Select-Object
, но я не уверен, как еще создать новый объект Project
в Select-Object
.