internal static void NotNullOrEmpty(string value, string name)
 {
     NotNull(value, name);
     if (value.Length == 0)
     {
         Throw.ArgumentEmptyException(name);
     }
 }
 internal static void NotNullOrEmpty(string value, Expression <Func <string> > reference)
 {
     NotNull(value, reference);
     if (value.Length == 0)
     {
         Throw.ArgumentEmptyException(GetName(reference));
     }
 }
 internal static void NotNullOrEmpty <T>(IEnumerable <T> value, string name)
 {
     NotNull(value, name);
     using (IEnumerator <T> enumerator = value.GetEnumerator())
     {
         if (!enumerator.MoveNext())
         {
             Throw.ArgumentEmptyException(name);
         }
     }
 }
 internal static void NotNullOrEmpty <T>(IEnumerable <T> value, Expression <Func <IEnumerable <T> > > reference)
 {
     NotNull(value, reference);
     using (IEnumerator <T> enumerator = value.GetEnumerator())
     {
         if (!enumerator.MoveNext())
         {
             Throw.ArgumentEmptyException(GetName(reference));
         }
     }
 }