static public bool InspectAdd(this IEnumerable item, object value) { if (item != null) { MethodInfoEX method = item.GetType().GetFilteredInstanceMethods( Filterer_MethodInfo.IsNamed("Add"), Filterer_MethodInfo.HasOneEffectiveParameter() ).GetFirst(); if (method != null) { if (value == null) { value = method.GetEffectiveParameterType(0).GetDefaultValue(); } method.Invoke(item, new object[] { value }); return(true); } return(item.InspectInsert( item.InspectCount(), value )); } return(false); }
static public bool InspectInsert(this IEnumerable item, int index, object value) { if (item != null) { MethodInfoEX method = item.GetType().GetFilteredInstanceMethods( Filterer_MethodInfo.IsNamed("Insert"), Filterer_MethodInfo.CanNthEffectiveParameterHold(0, typeof(int)), Filterer_MethodInfo.HasTwoEffectiveParameters() ).GetFirst(); if (method != null) { if (value == null) { value = method.GetEffectiveParameterType(1).GetDefaultValue(); } method.Invoke(item, new object[] { index, value }); return(true); } } return(false); }