[Ethereum] Explicit type conversion not allowed from “bytes1” to “uint256”

contract-developmentsoliditysolidity-0.5.x

Just tried to convert byte to uint using Solidity 0.5.x:

uint length = uint(arr[i]);

and got:

MyCode.sol:88:29: TypeError: Explicit type conversion not allowed from "bytes1" to "uint256".
       uint length = uint(arr[i]);
                          ^----^

Best Answer

The shortest solution I discovered after several tries:

uint length = uint(uint8(arr[i]));