Freigeben über


HashSet<T> Konstruktoren

Definition

Initialisiert eine neue Instanz der HashSet<T>-Klasse.

Überlädt

Name Beschreibung
HashSet<T>()

Initialisiert eine neue Instanz der Klasse, die HashSet<T> leer ist, und verwendet den Standardmäßigen Gleichheitsvergleich für den Settyp.

HashSet<T>(IEnumerable<T>)

Initialisiert eine neue Instanz der HashSet<T> Klasse, die den Standardmäßigen Gleichheitsvergleich für den Settyp verwendet, Elemente enthält, die aus der angegebenen Auflistung kopiert wurden, und verfügt über ausreichende Kapazität, um die Anzahl der kopierten Elemente aufzunehmen.

HashSet<T>(IEqualityComparer<T>)

Initialisiert eine neue Instanz der Klasse, die HashSet<T> leer ist, und verwendet den angegebenen Gleichheitsvergleich für den Settyp.

HashSet<T>(Int32)

Initialisiert eine neue Instanz der Klasse, die HashSet<T> leer ist, aber reservierten Platz für capacity Elemente und verwendet den Standardmäßigen Gleichheitsvergleich für den Settyp.

HashSet<T>(IEnumerable<T>, IEqualityComparer<T>)

Initialisiert eine neue Instanz der HashSet<T> Klasse, die den angegebenen Gleichheitsvergleich für den Settyp verwendet, Elemente enthält, die aus der angegebenen Auflistung kopiert wurden, und verfügt über ausreichende Kapazität, um die Anzahl der kopierten Elemente zu berücksichtigen.

HashSet<T>(Int32, IEqualityComparer<T>)

Initialisiert eine neue Instanz der HashSet<T> Klasse, die den angegebenen Gleichheitsvergleich für den Settyp verwendet, und verfügt über ausreichende Kapazität, um Elemente aufzunehmen capacity .

HashSet<T>(SerializationInfo, StreamingContext)
Veraltet.

Initialisiert eine neue Instanz der HashSet<T> Klasse mit serialisierten Daten.

HashSet<T>()

Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs

Initialisiert eine neue Instanz der Klasse, die HashSet<T> leer ist, und verwendet den Standardmäßigen Gleichheitsvergleich für den Settyp.

public:
 HashSet();
public HashSet();
Public Sub New ()

Beispiele

Das folgende Beispiel veranschaulicht, wie zwei HashSet<T> Objekte erstellt und aufgefüllt werden. Dieses Beispiel ist Teil eines größeren Beispiels, das für die UnionWith Methode bereitgestellt wird.

HashSet<int> evenNumbers = new HashSet<int>();
HashSet<int> oddNumbers = new HashSet<int>();

for (int i = 0; i < 5; i++)
{
    // Populate numbers with just even numbers.
    evenNumbers.Add(i * 2);

    // Populate oddNumbers with just odd numbers.
    oddNumbers.Add((i * 2) + 1);
}
let evenNumbers = HashSet<int>()
let oddNumbers = HashSet<int>()

for i = 0 to 4 do
    // Populate numbers with just even numbers.
    evenNumbers.Add(i * 2) |> ignore

    // Populate oddNumbers with just odd numbers.
    oddNumbers.Add(i * 2 + 1) |> ignore
Dim evenNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()
Dim oddNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()

For i As Integer = 0 To 4

    ' Populate evenNumbers with only even numbers.
    evenNumbers.Add(i * 2)

    ' Populate oddNumbers with only odd numbers.
    oddNumbers.Add((i * 2) + 1)
Next i

Hinweise

Die Kapazität eines HashSet<T> Objekts ist die Anzahl der Elemente, die das Objekt enthalten kann. Die Kapazität eines HashSet<T> Objekts erhöht sich automatisch, wenn dem Objekt Elemente hinzugefügt werden.

Dieser Konstruktor ist ein O(1)-Vorgang.

Gilt für:

HashSet<T>(IEnumerable<T>)

Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs

Initialisiert eine neue Instanz der HashSet<T> Klasse, die den Standardmäßigen Gleichheitsvergleich für den Settyp verwendet, Elemente enthält, die aus der angegebenen Auflistung kopiert wurden, und verfügt über ausreichende Kapazität, um die Anzahl der kopierten Elemente aufzunehmen.

public:
 HashSet(System::Collections::Generic::IEnumerable<T> ^ collection);
public HashSet(System.Collections.Generic.IEnumerable<T> collection);
new System.Collections.Generic.HashSet<'T> : seq<'T> -> System.Collections.Generic.HashSet<'T>
Public Sub New (collection As IEnumerable(Of T))

Parameter

collection
IEnumerable<T>

Die Auflistung, deren Elemente in den neuen Satz kopiert werden.

Ausnahmen

collection ist null.

Beispiele

Das folgende Beispiel zeigt, wie eine HashSet<T> Auflistung aus einem vorhandenen Satz erstellt wird. In diesem Beispiel werden zwei Sätze mit geraden und ungeraden ganzen Zahlen erstellt. Anschließend wird ein drittes HashSet<T> Objekt aus dem ganzzahligen Satz erstellt.

HashSet<int> evenNumbers = new HashSet<int>();
HashSet<int> oddNumbers = new HashSet<int>();

for (int i = 0; i < 5; i++)
{
    // Populate numbers with just even numbers.
    evenNumbers.Add(i * 2);

    // Populate oddNumbers with just odd numbers.
    oddNumbers.Add((i * 2) + 1);
}

Console.Write("evenNumbers contains {0} elements: ", evenNumbers.Count);
DisplaySet(evenNumbers);

Console.Write("oddNumbers contains {0} elements: ", oddNumbers.Count);
DisplaySet(oddNumbers);

// Create a new HashSet populated with even numbers.
HashSet<int> numbers = new HashSet<int>(evenNumbers);
Console.WriteLine("numbers UnionWith oddNumbers...");
numbers.UnionWith(oddNumbers);

Console.Write("numbers contains {0} elements: ", numbers.Count);
DisplaySet(numbers);

void DisplaySet(HashSet<int> collection)
{
    Console.Write("{");
    foreach (int i in collection)
    {
        Console.Write(" {0}", i);
    }
    Console.WriteLine(" }");
}

/* This example produces output similar to the following:
* evenNumbers contains 5 elements: { 0 2 4 6 8 }
* oddNumbers contains 5 elements: { 1 3 5 7 9 }
* numbers UnionWith oddNumbers...
* numbers contains 10 elements: { 0 2 4 6 8 1 3 5 7 9 }
*/

let displaySet (collection: HashSet<int>) =
    printf "{"

    for i in collection do
        printf $" {i}"

    printfn " }"

let evenNumbers = HashSet<int>()
let oddNumbers = HashSet<int>()

for i = 0 to 4 do
    // Populate numbers with just even numbers.
    evenNumbers.Add(i * 2) |> ignore

    // Populate oddNumbers with just odd numbers.
    oddNumbers.Add(i * 2 + 1) |> ignore

printf $"evenNumbers contains {evenNumbers.Count} elements: "
displaySet evenNumbers

printf $"oddNumbers contains {oddNumbers.Count} elements: "
displaySet oddNumbers

// Create a new HashSet populated with even numbers.
let numbers = HashSet<int> evenNumbers
printfn "numbers UnionWith oddNumbers..."
numbers.UnionWith oddNumbers

printf $"numbers contains {numbers.Count} elements: "
displaySet numbers
// This example produces output similar to the following:
//    evenNumbers contains 5 elements: { 0 2 4 6 8 }
//    oddNumbers contains 5 elements: { 1 3 5 7 9 }
//    numbers UnionWith oddNumbers...
//    numbers contains 10 elements: { 0 2 4 6 8 1 3 5 7 9 }
Shared Sub Main()

    Dim evenNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()
    Dim oddNumbers As HashSet(Of Integer) = New HashSet(Of Integer)()

    For i As Integer = 0 To 4

        ' Populate evenNumbers with only even numbers.
        evenNumbers.Add(i * 2)

        ' Populate oddNumbers with only odd numbers.
        oddNumbers.Add((i * 2) + 1)
    Next i

    Console.Write("evenNumbers contains {0} elements: ", evenNumbers.Count)
    DisplaySet(evenNumbers)

    Console.Write("oddNumbers contains {0} elements: ", oddNumbers.Count)
    DisplaySet(oddNumbers)

    ' Create a new HashSet populated with even numbers.
    Dim numbers As HashSet(Of Integer) = New HashSet(Of Integer)(evenNumbers)
    Console.WriteLine("numbers UnionWith oddNumbers...")
    numbers.UnionWith(oddNumbers)

    Console.Write("numbers contains {0} elements: ", numbers.Count)
    DisplaySet(numbers)
End Sub

Hinweise

Die Kapazität eines HashSet<T> Objekts ist die Anzahl der Elemente, die das Objekt enthalten kann. Die Kapazität eines HashSet<T> Objekts erhöht sich automatisch, wenn dem Objekt Elemente hinzugefügt werden.

Wenn collection Duplikate enthalten sind, enthält der Satz eines der einzelnen eindeutigen Elemente. Es wird keine Ausnahme ausgelöst. Daher ist die Größe des resultierenden Satzes nicht identisch mit der Größe von collection.

Dieser Konstruktor ist ein O(n)-Vorgang, wobei n es sich um die Anzahl der Elemente im collection Parameter handelt.

Gilt für:

HashSet<T>(IEqualityComparer<T>)

Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs

Initialisiert eine neue Instanz der Klasse, die HashSet<T> leer ist, und verwendet den angegebenen Gleichheitsvergleich für den Settyp.

public:
 HashSet(System::Collections::Generic::IEqualityComparer<T> ^ comparer);
public HashSet(System.Collections.Generic.IEqualityComparer<T> comparer);
public HashSet(System.Collections.Generic.IEqualityComparer<T>? comparer);
new System.Collections.Generic.HashSet<'T> : System.Collections.Generic.IEqualityComparer<'T> -> System.Collections.Generic.HashSet<'T>
Public Sub New (comparer As IEqualityComparer(Of T))

Parameter

comparer
IEqualityComparer<T>

Die IEqualityComparer<T> Implementierung, die beim Vergleichen von Werten im Satz verwendet werden soll, oder null um die Standardimplementierung EqualityComparer<T> für den Satztyp zu verwenden.

Hinweise

Die Kapazität eines HashSet<T> Objekts ist die Anzahl der Elemente, die das Objekt enthalten kann. Die Kapazität eines HashSet<T> Objekts erhöht sich automatisch, wenn dem Objekt Elemente hinzugefügt werden.

Dieser Konstruktor ist ein O(1)-Vorgang.

Gilt für:

HashSet<T>(Int32)

Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs

Initialisiert eine neue Instanz der Klasse, die HashSet<T> leer ist, aber reservierten Platz für capacity Elemente und verwendet den Standardmäßigen Gleichheitsvergleich für den Settyp.

public:
 HashSet(int capacity);
public HashSet(int capacity);
new System.Collections.Generic.HashSet<'T> : int -> System.Collections.Generic.HashSet<'T>
Public Sub New (capacity As Integer)

Parameter

capacity
Int32

Die Anfangsgröße der HashSet<T>.

Hinweise

Da Größenänderungen relativ teuer sind (rehashing erforderlich), versucht dies, die Größe zu minimieren, indem die anfängliche Kapazität basierend auf dem Wert des Werts capacityfestgelegt wird.

Vorsicht

Wenn capacity aus Benutzereingaben stammt, verwenden Sie lieber eine Konstruktorüberladung ohne Parameter capacity , und lassen Sie die Größe der Sammlung ändern, wenn Elemente hinzugefügt werden. Wenn Sie einen vom Benutzer angegebenen Wert verwenden müssen, setzen Sie ihn entweder auf einen angemessenen Grenzwert (z. B. ), oder stellen Sie sicher, Math.Clamp(untrustedValue, 0, 20)dass die Elementanzahl mit dem angegebenen Wert übereinstimmt.

Gilt für:

HashSet<T>(IEnumerable<T>, IEqualityComparer<T>)

Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs

Initialisiert eine neue Instanz der HashSet<T> Klasse, die den angegebenen Gleichheitsvergleich für den Settyp verwendet, Elemente enthält, die aus der angegebenen Auflistung kopiert wurden, und verfügt über ausreichende Kapazität, um die Anzahl der kopierten Elemente zu berücksichtigen.

public:
 HashSet(System::Collections::Generic::IEnumerable<T> ^ collection, System::Collections::Generic::IEqualityComparer<T> ^ comparer);
public HashSet(System.Collections.Generic.IEnumerable<T> collection, System.Collections.Generic.IEqualityComparer<T> comparer);
public HashSet(System.Collections.Generic.IEnumerable<T> collection, System.Collections.Generic.IEqualityComparer<T>? comparer);
new System.Collections.Generic.HashSet<'T> : seq<'T> * System.Collections.Generic.IEqualityComparer<'T> -> System.Collections.Generic.HashSet<'T>
Public Sub New (collection As IEnumerable(Of T), comparer As IEqualityComparer(Of T))

Parameter

collection
IEnumerable<T>

Die Auflistung, deren Elemente in den neuen Satz kopiert werden.

comparer
IEqualityComparer<T>

Die IEqualityComparer<T> Implementierung, die beim Vergleichen von Werten im Satz verwendet werden soll, oder null um die Standardimplementierung EqualityComparer<T> für den Satztyp zu verwenden.

Ausnahmen

collection ist null.

Beispiele

Im folgenden Beispiel wird ein bereitgestellter IEqualityComparer<T> Code verwendet, um Vergleiche zwischen Groß- und Kleinschreibung für die Elemente einer HashSet<T> Sammlung von Fahrzeugtypen zu ermöglichen.

HashSet<string> allVehicles = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
List<string> someVehicles = new List<string>();

someVehicles.Add("Planes");
someVehicles.Add("Trains");
someVehicles.Add("Automobiles");

// Add in the vehicles contained in the someVehicles list.
allVehicles.UnionWith(someVehicles);

Console.WriteLine("The current HashSet contains:\n");
foreach (string vehicle in allVehicles)
{
    Console.WriteLine(vehicle);
}

allVehicles.Add("Ships");
allVehicles.Add("Motorcycles");
allVehicles.Add("Rockets");
allVehicles.Add("Helicopters");
allVehicles.Add("Submarines");

Console.WriteLine("\nThe updated HashSet contains:\n");
foreach (string vehicle in allVehicles)
{
    Console.WriteLine(vehicle);
}

// Verify that the 'All Vehicles' set contains at least the vehicles in
// the 'Some Vehicles' list.
if (allVehicles.IsSupersetOf(someVehicles))
{
    Console.Write("\nThe 'All' vehicles set contains everything in ");
    Console.WriteLine("'Some' vechicles list.");
}

// Check for Rockets. Here the OrdinalIgnoreCase comparer will compare
// true for the mixed-case vehicle type.
if (allVehicles.Contains("roCKeTs"))
{
    Console.WriteLine("\nThe 'All' vehicles set contains 'roCKeTs'");
}

allVehicles.ExceptWith(someVehicles);
Console.WriteLine("\nThe excepted HashSet contains:\n");
foreach (string vehicle in allVehicles)
{
    Console.WriteLine(vehicle);
}

// Remove all the vehicles that are not 'super cool'.
allVehicles.RemoveWhere(isNotSuperCool);

Console.WriteLine("\nThe super cool vehicles are:\n");
foreach (string vehicle in allVehicles)
{
    Console.WriteLine(vehicle);
}

// Predicate to determine vehicle 'coolness'.
bool isNotSuperCool(string vehicle)
{
    bool superCool = (vehicle == "Helicopters") || (vehicle == "Motorcycles");

    return !superCool;
}

// The program writes the following output to the console.
//
// The current HashSet contains:
//
// Planes
// Trains
// Automobiles
//
// The updated HashSet contains:
//
// Planes
// Trains
// Automobiles
// Ships
// Motorcycles
// Rockets
// Helicopters
// Submarines
//
// The 'All' vehicles set contains everything in 'Some' vechicles list.
//
// The 'All' vehicles set contains 'roCKeTs'
//
// The excepted HashSet contains:
//
// Ships
// Motorcycles
// Rockets
// Helicopters
// Submarines
//
// The super cool vehicles are:
//
// Motorcycles
// Helicopters
let allVehicles = HashSet<string> StringComparer.OrdinalIgnoreCase
let someVehicles = ResizeArray()

someVehicles.Add "Planes"
someVehicles.Add "Trains"
someVehicles.Add "Automobiles"

// Add in the vehicles contained in the someVehicles list.
allVehicles.UnionWith someVehicles

printfn "The current HashSet contains:\n"

for vehicle in allVehicles do
    printfn $"{vehicle}"

allVehicles.Add "Ships" |> ignore
allVehicles.Add "Motorcycles" |> ignore
allVehicles.Add "Rockets" |> ignore
allVehicles.Add "Helicopters" |> ignore
allVehicles.Add "Submarines" |> ignore

printfn "\nThe updated HashSet contains:\n"

for vehicle in allVehicles do
    printfn $"{vehicle}"

// Verify that the 'All Vehicles' set contains at least the vehicles in
// the 'Some Vehicles' list.
if allVehicles.IsSupersetOf someVehicles then
    printfn "\nThe 'All' vehicles set contains everything in 'Some' vehicles list."

// Check for Rockets. Here the OrdinalIgnoreCase comparer will compare
// true for the mixed-case vehicle type.
if allVehicles.Contains "roCKeTs" then
    printfn "\nThe 'All' vehicles set contains 'roCKeTs'"

allVehicles.ExceptWith someVehicles
printfn "\nThe excepted HashSet contains:\n"

for vehicle in allVehicles do
    printfn $"{vehicle}"

// Predicate to determine vehicle 'coolness'.
let isNotSuperCool vehicle =
    let superCool = vehicle = "Helicopters" || vehicle = "Motorcycles"
    not superCool

// Remove all the vehicles that are not 'super cool'.
allVehicles.RemoveWhere isNotSuperCool |> ignore

printfn "\nThe super cool vehicles are:\n"

for vehicle in allVehicles do
    printfn $"{vehicle}"

// The program writes the following output to the console.
//
// The current HashSet contains:
//
// Planes
// Trains
// Automobiles
//
// The updated HashSet contains:
//
// Planes
// Trains
// Automobiles
// Ships
// Motorcycles
// Rockets
// Helicopters
// Submarines
//
// The 'All' vehicles set contains everything in 'Some' vehicles list.
//
// The 'All' vehicles set contains 'roCKeTs'
//
// The excepted HashSet contains:
//
// Ships
// Motorcycles
// Rockets
// Helicopters
// Submarines
//
// The super cool vehicles are:
//
// Motorcycles
// Helicopters
Imports System.Collections.Generic

Class Program
    Public Shared Sub Main()
        Dim allVehicles As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
        Dim someVehicles As New List(Of String)()

        someVehicles.Add("Planes")
        someVehicles.Add("Trains")
        someVehicles.Add("Automobiles")

        ' Add in the vehicles contained in the someVehicles list.
        allVehicles.UnionWith(someVehicles)

        Console.WriteLine("The current HashSet contains:" + Environment.NewLine)
        For Each vehicle As String In allVehicles
            Console.WriteLine(vehicle)
        Next vehicle

        allVehicles.Add("Ships")
        allVehicles.Add("Motorcycles")
        allVehicles.Add("Rockets")
        allVehicles.Add("Helicopters")
        allVehicles.Add("Submarines")

        Console.WriteLine(Environment.NewLine + "The updated HashSet contains:" + Environment.NewLine)
        For Each vehicle As String In allVehicles
            Console.WriteLine(vehicle)
        Next vehicle

        ' Verify that the 'All Vehicles' set contains at least the vehicles in
        ' the 'Some Vehicles' list.
        If allVehicles.IsSupersetOf(someVehicles) Then
            Console.Write(Environment.NewLine + "The 'All' vehicles set contains everything in ")
            Console.WriteLine("'Some' vechicles list.")
        End If

        ' Check for Rockets. Here the OrdinalIgnoreCase comparer will compare
        ' True for the mixed-case vehicle type.
        If allVehicles.Contains("roCKeTs") Then
            Console.WriteLine(Environment.NewLine + "The 'All' vehicles set contains 'roCKeTs'")
        End If

        allVehicles.ExceptWith(someVehicles)
        Console.WriteLine(Environment.NewLine + "The excepted HashSet contains:" + Environment.NewLine)
        For Each vehicle As String In allVehicles
            Console.WriteLine(vehicle)
        Next vehicle

        ' Remove all the vehicles that are not 'super cool'.
        allVehicles.RemoveWhere(AddressOf isNotSuperCool)

        Console.WriteLine(Environment.NewLine + "The super cool vehicles are:" + Environment.NewLine)
        For Each vehicle As String In allVehicles
            Console.WriteLine(vehicle)
        Next vehicle
    End Sub

    ' Predicate to determine vehicle 'coolness'.
    Private Shared Function isNotSuperCool(vehicle As String) As Boolean
        Dim notSuperCool As Boolean = _
            (vehicle <> "Helicopters") And (vehicle <> "Motorcycles")

        Return notSuperCool
    End Function
End Class

'
' The program writes the following output to the console.
'
' The current HashSet contains:
'
' Planes
' Trains
' Automobiles
'
' The updated HashSet contains:
'
' Planes
' Trains
' Automobiles
' Ships
' Motorcycles
' Rockets
' Helicopters
' Submarines
'
' The 'All' vehicles set contains everything in 'Some' vechicles list.
'
' The 'All' vehicles set contains 'roCKeTs'
'
' The excepted HashSet contains:
'
' Ships
' Motorcycles
' Rockets
' Helicopters
' Submarines
'
' The super cool vehicles are:
'
' Motorcycles
' Helicopters

Hinweise

Die Kapazität eines HashSet<T> Objekts ist die Anzahl der Elemente, die das Objekt enthalten kann. Die Kapazität eines HashSet<T> Objekts erhöht sich automatisch, wenn dem Objekt Elemente hinzugefügt werden.

Wenn collection Duplikate enthalten sind, enthält der Satz eines der einzelnen eindeutigen Elemente. Es wird keine Ausnahme ausgelöst. Daher ist die Größe des resultierenden Satzes nicht identisch mit der Größe von collection.

Dieser Konstruktor ist ein O(n)-Vorgang, wobei n es sich um die Anzahl der Elemente im collection Parameter handelt.

Gilt für:

HashSet<T>(Int32, IEqualityComparer<T>)

Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs

Initialisiert eine neue Instanz der HashSet<T> Klasse, die den angegebenen Gleichheitsvergleich für den Settyp verwendet, und verfügt über ausreichende Kapazität, um Elemente aufzunehmen capacity .

public:
 HashSet(int capacity, System::Collections::Generic::IEqualityComparer<T> ^ comparer);
public HashSet(int capacity, System.Collections.Generic.IEqualityComparer<T>? comparer);
public HashSet(int capacity, System.Collections.Generic.IEqualityComparer<T> comparer);
new System.Collections.Generic.HashSet<'T> : int * System.Collections.Generic.IEqualityComparer<'T> -> System.Collections.Generic.HashSet<'T>
Public Sub New (capacity As Integer, comparer As IEqualityComparer(Of T))

Parameter

capacity
Int32

Die Anfangsgröße der HashSet<T>.

comparer
IEqualityComparer<T>

Die IEqualityComparer<T> Implementierung, die beim Vergleichen von Werten im Satz oder Null (Nothing in Visual Basic) verwendet werden soll, um die Standardimplementierung IEqualityComparer<T> für den Satztyp zu verwenden.

Hinweise

Da Größenänderungen relativ teuer sind (rehashing erforderlich), versucht dies, die Größe zu minimieren, indem die anfängliche Kapazität basierend auf dem Wert des Werts capacityfestgelegt wird.

Vorsicht

Wenn capacity aus Benutzereingaben stammt, verwenden Sie lieber eine Konstruktorüberladung ohne Parameter capacity , und lassen Sie die Größe der Sammlung ändern, wenn Elemente hinzugefügt werden. Wenn Sie einen vom Benutzer angegebenen Wert verwenden müssen, setzen Sie ihn entweder auf einen angemessenen Grenzwert (z. B. ), oder stellen Sie sicher, Math.Clamp(untrustedValue, 0, 20)dass die Elementanzahl mit dem angegebenen Wert übereinstimmt.

Gilt für:

HashSet<T>(SerializationInfo, StreamingContext)

Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs
Quelle:
HashSet.cs

Achtung

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Initialisiert eine neue Instanz der HashSet<T> Klasse mit serialisierten Daten.

protected:
 HashSet(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected HashSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
protected HashSet(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Collections.Generic.HashSet<'T> : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Collections.Generic.HashSet<'T>
new System.Collections.Generic.HashSet<'T> : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Collections.Generic.HashSet<'T>
Protected Sub New (info As SerializationInfo, context As StreamingContext)

Parameter

info
SerializationInfo

Ein SerializationInfo Objekt, das die zum Serialisieren des HashSet<T> Objekts erforderlichen Informationen enthält.

context
StreamingContext

Eine StreamingContext Struktur, die die Quelle und das Ziel des serialisierten Datenstroms enthält, der dem HashSet<T> Objekt zugeordnet ist.

Attribute

Hinweise

Dieser Konstruktor wird während der Deserialisierung aufgerufen, um ein Objekt zu rekonstituieren, das über einen Datenstrom übertragen wird. Weitere Informationen finden Sie unter XML- und SOAP-Serialisierung.

Gilt für: