Как использовать нулевой тип в iAsyncenumerable или листовой тип, как не нулевойC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать нулевой тип в iAsyncenumerable или листовой тип, как не нулевой

Сообщение Anonymous »

У меня есть метод, который проверяет, является ли значение по умолчанию или имеет значение. Когда он имеет значение, я хочу вернуть значение. Входной объект нулевы, но iAsyncenumerable не принимает нулевые переменные.

Код: Выделить всё

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)
{

ICollection items = [];
ValueTask t = ((IAsyncEnumerable)obj).AnyAsync();
hasValue = t.Result;

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());
}

return result;
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... s-none-nul
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Итерация IAsyncenumerable в функции, возвращающей IAsyncenumerable с отменой
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Можете ли вы использовать Autodiff с шаблонной листовой системой в PyDrake в DoCalcTimeDerivatives для вычисления произв
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Измерение экспортированной выбросы высоты листовой строки Excel Excel
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать эффективный WhenEach, который передает IAsyncEnumerable результатов задачи?
    Гость » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость
  • Как дождаться всех результатов от IAsyncEnumerable<>?
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»