Enumerable.UnionBy Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overloads
| Name | Description |
|---|---|
| UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>) |
Produceert de set-samenvoeging van twee reeksen volgens een opgegeven sleutelkiezerfunctie. |
| UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Produceert de set-samenvoeging van twee reeksen volgens een opgegeven sleutelkiezerfunctie. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>)
- Bron:
- Union.cs
- Bron:
- Union.cs
- Bron:
- Union.cs
- Bron:
- Union.cs
- Bron:
- Union.cs
Produceert de set-samenvoeging van twee reeksen volgens een opgegeven sleutelkiezerfunctie.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ UnionBy(System::Collections::Generic::IEnumerable<TSource> ^ first, System::Collections::Generic::IEnumerable<TSource> ^ second, Func<TSource, TKey> ^ keySelector);
public static System.Collections.Generic.IEnumerable<TSource> UnionBy<TSource,TKey>(this System.Collections.Generic.IEnumerable<TSource> first, System.Collections.Generic.IEnumerable<TSource> second, Func<TSource,TKey> keySelector);
static member UnionBy : seq<'Source> * seq<'Source> * Func<'Source, 'Key> -> seq<'Source>
<Extension()>
Public Function UnionBy(Of TSource, TKey) (first As IEnumerable(Of TSource), second As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As IEnumerable(Of TSource)
Type parameters
- TSource
Het type van de elementen van de invoerreeksen.
- TKey
Het type sleutel om elementen te identificeren.
Parameters
- first
- IEnumerable<TSource>
Een IEnumerable<T> wiens afzonderlijke elementen de eerste set vormen voor de samenvoeging.
- second
- IEnumerable<TSource>
Een IEnumerable<T> wiens afzonderlijke elementen de tweede set vormen voor de samenvoeging.
- keySelector
- Func<TSource,TKey>
Een functie om de sleutel voor elk element te extraheren.
Retouren
Een IEnumerable<T> die de elementen uit beide invoerreeksen bevat, met uitzondering van duplicaten.
Uitzonderingen
first of second is null.
Voorbeelden
In het volgende voorbeeld ziet u hoe UnionBy u twee verzamelingen objecten samenvoegt terwijl duplicaten worden uitgesloten op basis van een specifieke eigenschap.
(int ProductId, string Name, decimal Price)[] localProducts =
{
(101, "Laptop", 1000m),
(102, "Mouse", 100m),
(103, "Keyboard", 120m)
};
(int ProductId, string Name, decimal Price)[] warehouseProducts =
{
(102, "Mouse", 100m), // Duplicate ProductId (already in local)
(104, "Monitor", 800m),
(101, "Laptop", 1000m) // Duplicate ProductId (already in local)
};
var combinedProducts =
localProducts.UnionBy(
warehouseProducts,
product => product.ProductId
);
foreach (var product in combinedProducts)
{
Console.WriteLine($"{product.ProductId}: {product.Name} - ${product.Price}");
}
/*
This code produces the following output:
101: Laptop - $1000
102: Mouse - $100
103: Keyboard - $120
104: Monitor - $800
*/
Opmerkingen
Deze methode wordt geïmplementeerd met behulp van de uitgestelde uitvoering. De onmiddellijke retourwaarde is een object waarin alle informatie wordt opgeslagen die nodig is om de actie uit te voeren. De query die door deze methode wordt vertegenwoordigd, wordt pas uitgevoerd nadat het object is geïnventariseerd door de methode GetEnumerator rechtstreeks aan te roepen of door foreach te gebruiken in C# of For Each in Visual Basic.
De standaard gelijkheidsgelijker, Defaultwordt gebruikt om waarden te vergelijken.
Wanneer het object dat door deze methode wordt geretourneerd, UnionByfirst wordt geïnventariseerd en second in die volgorde opgesomd en wordt elk element geretourneerd dat nog niet is opgehaald.
Zie ook
Van toepassing op
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)
- Bron:
- Union.cs
- Bron:
- Union.cs
- Bron:
- Union.cs
- Bron:
- Union.cs
- Bron:
- Union.cs
Produceert de set-samenvoeging van twee reeksen volgens een opgegeven sleutelkiezerfunctie.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ UnionBy(System::Collections::Generic::IEnumerable<TSource> ^ first, System::Collections::Generic::IEnumerable<TSource> ^ second, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Collections.Generic.IEnumerable<TSource> UnionBy<TSource,TKey>(this System.Collections.Generic.IEnumerable<TSource> first, System.Collections.Generic.IEnumerable<TSource> second, Func<TSource,TKey> keySelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member UnionBy : seq<'Source> * seq<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IEqualityComparer<'Key> -> seq<'Source>
<Extension()>
Public Function UnionBy(Of TSource, TKey) (first As IEnumerable(Of TSource), second As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IEqualityComparer(Of TKey)) As IEnumerable(Of TSource)
Type parameters
- TSource
Het type van de elementen van de invoerreeksen.
- TKey
Het type sleutel om elementen te identificeren.
Parameters
- first
- IEnumerable<TSource>
Een IEnumerable<T> wiens afzonderlijke elementen de eerste set vormen voor de samenvoeging.
- second
- IEnumerable<TSource>
Een IEnumerable<T> wiens afzonderlijke elementen de tweede set vormen voor de samenvoeging.
- keySelector
- Func<TSource,TKey>
Een functie om de sleutel voor elk element te extraheren.
- comparer
- IEqualityComparer<TKey>
De IEqualityComparer<T> waarden die moeten worden vergeleken.
Retouren
Een IEnumerable<T> die de elementen uit beide invoerreeksen bevat, met uitzondering van duplicaten.
Uitzonderingen
first of second is null.
Voorbeelden
In het volgende voorbeeld ziet u hoe UnionBy u twee verzamelingen kunt samenvoegen terwijl u een aangepaste vergelijking gebruikt om hoofdlettergevoeligheid te negeren bij het controleren op dubbele sleutels.
(string Email, string FullName)[] marketingList =
{
("Mahmoud.Doe@example.com", "Mahmoud Doe"),
("alice.smith@example.com", "Alice Smith")
};
(string Email, string FullName)[] salesList =
{
("ALICE.SMITH@EXAMPLE.COM", "Alice S."), // Duplicate email, different casing
("Sara.jones@example.com", "Sara Jones")
};
var combinedList =
marketingList.UnionBy(
salesList,
contact => contact.Email,
StringComparer.OrdinalIgnoreCase
);
foreach (var contact in combinedList)
{
Console.WriteLine($"{contact.FullName} ({contact.Email})");
}
/*
This code produces the following output:
Mahmoud Doe (Mahmoud.Doe@example.com)
Alice Smith (alice.smith@example.com)
Sara Jones (Sara.jones@example.com)
*/
Opmerkingen
Deze methode wordt geïmplementeerd met behulp van de uitgestelde uitvoering. De onmiddellijke retourwaarde is een object waarin alle informatie wordt opgeslagen die nodig is om de actie uit te voeren. De query die door deze methode wordt vertegenwoordigd, wordt pas uitgevoerd nadat het object is geïnventariseerd door de methode GetEnumerator rechtstreeks aan te roepen of door foreach te gebruiken in C# of For Each in Visual Basic.
Als comparer dit het nullstandaardgelijker voor gelijkheid is, Defaultwordt gebruikt om waarden te vergelijken.
Wanneer het object dat door deze methode wordt geretourneerd, UnionByfirst wordt geïnventariseerd en second in die volgorde opgesomd en wordt elk element geretourneerd dat nog niet is opgehaald.