public static IComparer <T> GetComparer(IComparer <T> comparer, Func <T, TKey> keySelector, bool nullsFirst)
        {
            NullFilter <TKey> filter = NullFilterFactory.GetNullFilter <TKey>(nullsFirst);

            if (filter == null)
            {
                return(comparer);
            }
            return(new KeyedNullPlacementComparer <T, TKey>(comparer, keySelector, filter));
        }
        public static IComparer <T> GetComparer(IComparer <T> comparer, bool nullsFirst)
        {
            NullFilter <T> filter = NullFilterFactory.GetNullFilter <T>(nullsFirst);

            if (filter == null)
            {
                return(comparer);
            }
            return(new UnkeyedNullPlacementComparer <T>(comparer, filter));
        }