Enumerable.UnionBy Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>) |
Belirtilen bir anahtar seçici işlevine göre iki sıranın küme birleşimini üretir. |
| UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>) |
Belirtilen bir anahtar seçici işlevine göre iki sıranın küme birleşimini üretir. |
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>)
- Kaynak:
- Union.cs
- Kaynak:
- Union.cs
- Kaynak:
- Union.cs
- Kaynak:
- Union.cs
- Kaynak:
- Union.cs
Belirtilen bir anahtar seçici işlevine göre iki sıranın küme birleşimini üretir.
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)
Tür Parametreleri
- TSource
Giriş dizilerinin öğelerinin türü.
- TKey
Öğeleri tanımlamak için kullanılacak anahtarın türü.
Parametreler
- first
- IEnumerable<TSource>
Birleşim IEnumerable<T> için ilk kümeyi oluşturan benzersiz öğeleri.
- second
- IEnumerable<TSource>
Birleşim IEnumerable<T> için ikinci kümeyi oluşturan benzersiz öğeleri.
- keySelector
- Func<TSource,TKey>
Her öğenin anahtarını ayıklamak için bir işlev.
Döndürülenler
IEnumerable<T> Yinelenenler hariç olmak üzere her iki giriş dizisinden öğeleri içeren bir.
Özel durumlar
first veya secondnull.
Örnekler
Aşağıdaki örnek, belirli bir özelliğe göre yinelenenleri dışlarken iki nesne koleksiyonunu birleştirmek için nasıl kullanılacağını UnionBy gösterir.
public static void UnionByKeySelectorExample()
{
(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
*/
}
Açıklamalar
Bu yöntem ertelenen yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, nesne doğrudan GetEnumerator yöntemini çağırarak veya C# içinde foreach veya Visual Basic'de For Each kullanılarak numaralandırılana kadar yürütülür.
Değerleri karşılaştırmak için varsayılan eşitlik karşılaştırıcısı Defaultkullanılır.
Bu yöntem tarafından döndürülen nesne numaralandırıldığında, UnionBy ve second sırasıyla numaralandırılır first ve henüz döndürülmemiş her öğeyi verir.
Ayrıca bkz.
Şunlara uygulanır
UnionBy<TSource,TKey>(IEnumerable<TSource>, IEnumerable<TSource>, Func<TSource,TKey>, IEqualityComparer<TKey>)
- Kaynak:
- Union.cs
- Kaynak:
- Union.cs
- Kaynak:
- Union.cs
- Kaynak:
- Union.cs
- Kaynak:
- Union.cs
Belirtilen bir anahtar seçici işlevine göre iki sıranın küme birleşimini üretir.
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)
Tür Parametreleri
- TSource
Giriş dizilerinin öğelerinin türü.
- TKey
Öğeleri tanımlamak için kullanılacak anahtarın türü.
Parametreler
- first
- IEnumerable<TSource>
Birleşim IEnumerable<T> için ilk kümeyi oluşturan benzersiz öğeleri.
- second
- IEnumerable<TSource>
Birleşim IEnumerable<T> için ikinci kümeyi oluşturan benzersiz öğeleri.
- keySelector
- Func<TSource,TKey>
Her öğenin anahtarını ayıklamak için bir işlev.
- comparer
- IEqualityComparer<TKey>
IEqualityComparer<T> değerleri karşılaştırmak için.
Döndürülenler
IEnumerable<T> Yinelenenler hariç olmak üzere her iki giriş dizisinden öğeleri içeren bir.
Özel durumlar
first veya secondnull.
Örnekler
Aşağıdaki örnek, yinelenen anahtarları denetlerken büyük/küçük harf duyarlılığını yoksaymak için özel bir karşılaştırıcı kullanırken iki koleksiyonu birleştirmek için nasıl kullanılacağını UnionBy gösterir.
public static void UnionByComparerExample()
{
(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)
*/
}
Açıklamalar
Bu yöntem ertelenen yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, nesne doğrudan GetEnumerator yöntemini çağırarak veya C# içinde foreach veya Visual Basic'de For Each kullanılarak numaralandırılana kadar yürütülür.
ise comparernull, değerleri karşılaştırmak için varsayılan eşitlik karşılaştırıcısı Defaultolan kullanılır.
Bu yöntem tarafından döndürülen nesne numaralandırıldığında, UnionBy ve second sırasıyla numaralandırılır first ve henüz döndürülmemiş her öğeyi verir.