public void TestIsNullOrEmptyNotEmpty() { IEnumerable nullEnumerable = new[] { new object() }; IEnumerable<object> nullEnumerableT = new List<object> { new object(), new object() }; Assert.IsFalse(nullEnumerable.IsNullOrEmpty()); Assert.IsFalse(nullEnumerableT.IsNullOrEmpty()); }
public static MethodGroup LookupUserDefinedImplicitCasts(this Type src, Type dest) { Func<Type, Type, bool> encompasses = (t1, t2) => t2.HasPredefinedImplicitCastTo(t1); Func<Type, Type, bool> isEncompassedBy = (t1, t2) => t1.HasPredefinedImplicitCastTo(t2); var alternatives = new[] {src, dest}.Select(type => type.UndecorateNullable().LookupThisAndBaseTypes().Select(bt => bt .GetMethods(BF.PublicStatic) .Where(mi => mi.DeclaringType == bt) .Where(mi => mi.IsUserDefinedImplicitCast()) .Where(mi => isEncompassedBy(mi.CastDestination(), dest.UndecorateNullable())) .Where(mi => encompasses(mi.CastSource(), src.UndecorateNullable())))) .Flatten().Flatten(); alternatives = alternatives.Concat(alternatives.LiftSignatures()); return alternatives.IsNullOrEmpty() ? null : new MethodGroup(alternatives, "<cast>"); }