public static byte[] DecodeBytesFromTryteString(this TryteString tryteString) { string[] trytesArray = { "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; var trytesAsString = tryteString.ToString(); // If input length is odd, return null if (trytesAsString.Length % 2 != 0) { return(null); } var byteList = new List <byte>(); for (var i = 0; i < trytesAsString.Length; i += 2) { var firstValue = trytesArray.IndexOf(trytesAsString.Substring(i, 1)); var secondValue = trytesArray.IndexOf(trytesAsString.Substring(i + 1, 1)); var value = firstValue + (secondValue * 27); byteList.Add(Convert.ToByte(value)); } return(byteList.ToArray()); }