danielbodensee
Goto Top

ArrayList in einer Class

Hallo zusammen,

ich durchsuche mit meinem Script verschiedene Dateien um dort Details auszulesen, diese Daten werden dann in eine SQL-Tabelle abgelegt.

Um das Script zu verbessern und an neue Anforderungen anzupassen, möchte ich die Details in einer Class sammeln, die pro Durchlauf/File mit new() erstellt wird.

Nun habe ich aber die Anforderung auch ein Team erfassen, alle andere Members der Klasse sind unique, beim Team habe ich 1:n an Datensätze.

Kann man eine Team-Klasse verwenden um damit mit der Details-Klasse eine ArrayList verwenden zu können?

Team-Klasse:

class Team{
    Member(
        [string]$FirstName,
        [string]$LastName,
        [string]$Role,
        [string]$Alias,
        [string]$Email
    ) {
        $this.FirstName=$FirstName
        $this.LastName=$LastName
        $this.Role=$Role
        $this.Alias=$Alias
        $this.Email=$Email
    }

    [string]$FirstName
    [string]$LastName
    [string]$Role
    [string]$Alias
    [string]$Email
}

Mit dieser Klasse brauche ich dann eine [System.Collections.ArrayList], der ich 1:n Team-Members zuweisen kann, die restlichen Member der Klasse sind dann unique, also pro Member einfacher Text.

Ich komme da nicht weiter, daher die Frage geht das überhaupt oder denke ich zu anspruchsvoll?


Viele Grüsse,
Daniel

Content-ID: 33381535142

Url: https://administrator.de/contentid/33381535142

Ausgedruckt am: 17.11.2024 um 23:11 Uhr

10138557388
Lösung 10138557388 30.12.2023 aktualisiert um 23:42:47 Uhr
Goto Top
Jetzt 20 mal gelesen aber nicht wirklich verstanden was du willst, wohl auch weil der Satzbau unvollständig ist und Informationen fehlen ... meine Glaskugel hat jetzt einfach mal das hier ausgespuckt
class TeamMember {
    [string]$FirstName
    [string]$LastName
    [string]$Role
    [string]$Alias
    [string]$Email
}

class Team{
    [TeamMember[]]$Members
    [string]$TeamName
    AddMember(
        [string]$FirstName,
        [string]$LastName,
        [string]$Role,
        [string]$Alias,
        [string]$Email
    ) {
        $this.Members += [TeamMember]@{
            FirstName = $FirstName
            LastName = $LastName
            Role = $Role
            Alias = $Alias
            Email = $Email
        }
    }
}

# create team 
$team = [Team]@{TeamName='MyTeam'}  
# add members like this
$team.AddMember("Max","Muster","Rolle","Maxi","mmuster@domain.com")  
$team.AddMember("Irene","Musterfrau","Rolle","Irenchen","irene@domain.com")  
# or like this
$team.Members += [TeamMember]@{
            FirstName = "Hans"  
            LastName = "ImGlück"  
            Role = "My role"  
            Alias = "Hansi"  
            Email = "Hansi@domain.de"  
}

$team.TeamName
$team.Members

https://tio.run/##fVLLboMwELz7KywLKY0a8QdIyaGPSKWHqreIgwtusGpDZRM1UcWf9d ...

PJ.

All the best for 2024 🤗 🍾
DanielBodensee
DanielBodensee 01.01.2024 um 11:34:17 Uhr
Goto Top
Hi pjumper,

vielen Dank für Deine Antwort, das hilft mir sehr.

Kann man in die gleiche Klasse auch ein weiteres Array für Offices hinzufügen um Details des Büro zu erfassen wo das Team stationiert ist?

Gruss,
Daniel
10138557388
10138557388 01.01.2024 aktualisiert um 11:46:23 Uhr
Goto Top
Zitat von @DanielBodensee:
Kann man in die gleiche Klasse auch ein weiteres Array für Offices hinzufügen um Details des Büro zu erfassen wo das Team stationiert ist?
Selbstverständlich, nach gleichem Schema wie oben nur mit anderen Details/Bezeichnungen für die Locations.
DanielBodensee
DanielBodensee 01.01.2024 um 11:55:52 Uhr
Goto Top
Ich habe es versucht, aber bekommen ein Fehler:

class Office {
    [string]$Country
    [string]$City
    [string]$ShortName
}

class TeamMember {
    [string]$FirstName
    [string]$LastName
    [string]$Role
    [string]$Alias
    [string]$Email
}

class Team{
    [string]$TeamName

    [Office[]]$Offices
    AddOffice(
        [string]$country
        [string]$city
        [string]$ShortName
    ) {
        $this.Offices += [Office]@{
            Country = $Country
            City = $City
            ShortName = $ShortName
        }
      }

    [TeamMember[]]$Members
    AddMember(
        [string]$FirstName,
        [string]$LastName,
        [string]$Role,
        [string]$Alias,
        [string]$Email
    ) {
        $this.Members += [TeamMember]@{
            FirstName = $FirstName
            LastName = $LastName
            Role = $Role
            Alias = $Alias
            Email = $Email
        }
    }
}

Hier bekomme ich bei [string]$country in AddOffice die Meldung "Missing ')' in function parameter list".

Wo liegt mein Verständigungs-Problem?


Viele Grüsse,
Daniel
10138557388
10138557388 01.01.2024 aktualisiert um 12:51:29 Uhr
Goto Top
AddOffice(
[string]$country,
[string]$city,
[string]$ShortName
)
Augen auf beim Kommakauf.
DanielBodensee
DanielBodensee 01.01.2024 um 12:04:11 Uhr
Goto Top
Hi pjumper,

OMG, danke..., peinlich face-smile


Viele Grüsse,
Daniel
10138557388
10138557388 01.01.2024 aktualisiert um 12:08:18 Uhr
Goto Top
🤗 Na dann, fehlt ja nur noch der Haken am Beitrag. 🖖
DanielBodensee
DanielBodensee 01.01.2024 um 13:47:57 Uhr
Goto Top
Jup, erledigt face-smile

Nochmals vielen Dank!