Элемент IAsyncEnumerator становится пустым
При итерации моего ReliableDictionary с помощью перечислителя «Current.Value» возвращает значение null, потому что строка «totalLength += val.Length;» выбрасывает исключение NullPointerException. Как это возможно?
public async Task RemoveItemsPeriodically()
{
try
{
var totalLength = 0;
var dict= await this.stateManager.GetOrAddAsync<IReliableDictionary<string, Item>>("dict");
using (ITransaction tx = this.stateManager.CreateTransaction())
{
IAsyncEnumerable<KeyValuePair<string, Item>> asyncEnumerable = await dict.CreateEnumerableAsync(tx);
List<string> removeKeys= new List<string>();
using (IAsyncEnumerator<KeyValuePair<string, Item>> asyncEnumerator = asyncEnumerable.GetAsyncEnumerator())
{
while (await asyncEnumerator.MoveNextAsync(CancellationToken.None))
{
if (asyncEnumerator == null || asyncEnumerator.Current.Value == null)
{
Log();
}
else
{
var keyValue = asyncEnumerator.Current;
var key = keyValue.Key;
var val= keyValue.Value;
totalLength += val.Length;
if (this.checkToDelete(item.DeleteValue))
{
removeKeys.Add(key);
}
}
}
foreach (string keyToRemove in removeKeys)
{
dict= await this.stateManager.GetOrAddAsync<IReliableDictionary<string, Item>>("dict");
await dict.TryRemoveAsync(tx, keyToRemove);
}
}
await tx.CommitAsync();
}
}
}