private static IEnumerable <object> NotNullValue( IEnumerable data, ExpressionNode node, object context) { IEnumerator enumerator = data.GetEnumerator(); try { while (enumerator.MoveNext()) { object row = enumerator.Current; object value = node.Eval(row, context); if (value != null && DBNull.Value != value) { yield return(value); } } } finally { IDisposable disposable = enumerator as IDisposable; disposable?.Dispose(); } }
static IEnumerable <object> NotNullValue(IEnumerable data , ExpressionNode node , object context) { foreach (object row in data) { object value = node.Eval(row, context); if (null != value && DBNull.Value != value) { yield return(value); } } }