У меня есть метод, который проверяет, является ли значение по умолчанию или имеет значение. Когда он имеет значение, я хочу вернуть значение. Входной объект нулевы, но iAsyncenumerable не принимает нулевые переменные.
У меня есть метод, который проверяет, является ли значение по умолчанию или имеет значение. Когда он имеет значение, я хочу вернуть значение. Входной объект нулевы, но iAsyncenumerable не принимает нулевые переменные.[code]public static HasValueResult HasValue(this TEntity? obj) where TEntity : struct { bool hasValue = false; TEntity value = default; HasValueResult result = default;
if(obj is IEnumerable enumerable) { hasValue = enumerable.Any(); value = (TEntity)obj;
result = new HasValueResult(hasValue, value); } else if(obj is Enum) { hasValue = true; value = (TEntity)obj;
result = new HasValueResult(hasValue, value); } else if(obj is IAsyncEnumerable coll) {
IAsyncEnumerator en = ((IAsyncEnumerable)obj).GetAsyncEnumerator(); while(en.MoveNextAsync().Result) { items.Add(en.Current); }
result = new HasValueResult(hasValue, null, items); } else { hasValue = obj is Guid g ? g.Equals(Guid.Empty) : !string.IsNullOrEmpty(obj.ToString()); }