# DynamoDBStorage.ScanAsync(string, Dictionary&lt;string, AttributeValue&gt;, string, Func&lt;Dictionary&lt;string, AttributeValue&gt;, TResult&gt;)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions.dynamodb/orleans.transactions.dynamodb.dynamodbstorage/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.transactions.dynamodb/orleans.transactions.dynamodb.dynamodbstorage/methods/)

[Source](https://github.com/dotnet/orleans/blob/b7a9e3e1c9c54b3cec3a467c5734bf7744541bcf/src/AWS/Shared/Storage/DynamoDBStorage.cs#L821-L868)

```csharp
public Task<List<TResult>> ScanAsync<TResult>(string tableName, Dictionary<string, AttributeValue> attributes, string expression, Func<Dictionary<string, AttributeValue>, TResult> resolver)
```

Scan a DynamoDB table by querying the entry fields.

### Parameters

- `tableName` (`string`): The name of the table to search for the entries
- `attributes` (`Dictionary<string, AttributeValue>`): The attributes used on the expression
- `expression` (`string`): The filter expression
- `resolver` (`Func<Dictionary<string, AttributeValue>, TResult>`): Function that will be called to translate the returned fields into a concrete type. This Function is only called if the result is != null and will be called for each entry that match the query and added to the results list

### Returns

The collection containing a list of objects translated by the resolver function
