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-Key: 33381535142

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

Printed on: April 27, 2024 at 12:04 o'clock

Mitglied: 10138557388
Solution 10138557388 Dec 30, 2023 updated at 22:42:47 (UTC)
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 🤗 🍾
Member: DanielBodensee
DanielBodensee Jan 01, 2024 at 10:34:17 (UTC)
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
Mitglied: 10138557388
10138557388 Jan 01, 2024 updated at 10:46:23 (UTC)
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.
Member: DanielBodensee
DanielBodensee Jan 01, 2024 at 10:55:52 (UTC)
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
Mitglied: 10138557388
10138557388 Jan 01, 2024 updated at 11:51:29 (UTC)
Goto Top
AddOffice(
[string]$country,
[string]$city,
[string]$ShortName
)
Augen auf beim Kommakauf.
Member: DanielBodensee
DanielBodensee Jan 01, 2024 at 11:04:11 (UTC)
Goto Top
Hi pjumper,

OMG, danke..., peinlich face-smile


Viele Grüsse,
Daniel
Mitglied: 10138557388
10138557388 Jan 01, 2024 updated at 11:08:18 (UTC)
Goto Top
🤗 Na dann, fehlt ja nur noch der Haken am Beitrag. 🖖
Member: DanielBodensee
DanielBodensee Jan 01, 2024 at 12:47:57 (UTC)
Goto Top
Jup, erledigt face-smile

Nochmals vielen Dank!