private Block GetBlock( RpcResponse response, bool includeTransactions) { if (response.Result.Type != JTokenType.Null) { var transactions = response.Result.Value <JArray>("transactions").ToList(); IEnumerable <Transaction> GetTransactions() { return(includeTransactions ? transactions.Select(GetTransaction) : null); } // ReSharper disable once ImplicitlyCapturedClosure IEnumerable <string> GetTransactionHashes() { return(includeTransactions ? transactions.Select(x => x.Value <string>("hash")) : transactions.Select(x => x.Value <string>())); } return(new Block ( blockHash: response.ResultValue <string>("hash"), number: response.ResultValue <BigInteger?>("number"), parentHash: response.ResultValue <string>("parentHash"), timestamp: response.ResultValue <BigInteger>("timestamp"), transactionHashes: GetTransactionHashes(), transactions: GetTransactions() )); } else { return(null); } }