HashSet<T> Konstruktoren
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 |
| 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 |
| 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.