DefaultComparerProvider
DefaultComparerProvider implements IProvider<Type, IComparer>.
IProvider<Type, IComparer> comparerProvider = DefaultComparerProvider.Create;
IProvider<Type, IComparer> comparerProvider2 = DefaultComparerProvider.Cached;
DefaultComparerProvider.Create[type] creates IComparer<T> implementation as ArrayComparer, EnumerableComparer, GraphComparer or Comparer.
IComparer<string[]> comparer =
(IComparer<string[]>)
DefaultComparerProvider.Create[typeof(string[])];
DefaultComparerProvider.Cached[type] creates and caches comparer.
IComparer<string[]> comparer =
(IComparer<string[]>)
DefaultComparerProvider.Cached[typeof(string[])];
DefaultEqualityComparerProvider
DefaultEqualityComparerProvider implements IProvider<Type, IEqualityComparer>.
IProvider<Type, IEqualityComparer> comparerProvider = DefaultEqualityComparerProvider.Create;
IProvider<Type, IEqualityComparer> comparerProvider2 = DefaultEqualityComparerProvider.Cached;
DefaultEqualityComparerProvider.Create[type] creates IEqualityComparer<T> implementation as ArrayEqualityComparer, EnumerableEqualityComparer, GraphEqualityComparer or EqualityComparer.
IEqualityComparer<string[]> comparer =
(IEqualityComparer<string[]>)
DefaultEqualityComparerProvider.Create[typeof(string[])];
DefaultEqualityComparerProvider.Cached[type] creates and caches comparer.
IEqualityComparer<string[]> comparer =
(IEqualityComparer<string[]>)
DefaultEqualityComparerProvider.Cached[typeof(string[])];
Full Example
Full example
using System;
using System.Collections;
using System.Collections.Generic;
using Avalanche.Utilities;
using Avalanche.Utilities.Provider;
class defaultcomparerprovider
{
public static void Run()
{
{
// <00>
IProvider<Type, IComparer> comparerProvider = DefaultComparerProvider.Create;
IProvider<Type, IComparer> comparerProvider2 = DefaultComparerProvider.Cached;
// </00>
}
{
// <01>
IComparer<string[]> comparer =
(IComparer<string[]>)
DefaultComparerProvider.Create[typeof(string[])];
// </01>
}
{
// <02>
IComparer<string[]> comparer =
(IComparer<string[]>)
DefaultComparerProvider.Cached[typeof(string[])];
// </02>
}
{
// <10>
IProvider<Type, IEqualityComparer> comparerProvider = DefaultEqualityComparerProvider.Create;
IProvider<Type, IEqualityComparer> comparerProvider2 = DefaultEqualityComparerProvider.Cached;
// </10>
}
{
// <11>
IEqualityComparer<string[]> comparer =
(IEqualityComparer<string[]>)
DefaultEqualityComparerProvider.Create[typeof(string[])];
// </11>
}
{
// <12>
IEqualityComparer<string[]> comparer =
(IEqualityComparer<string[]>)
DefaultEqualityComparerProvider.Cached[typeof(string[])];
// </12>
}
}
}