TUP.AsmResolver.NET.StringsHeap.GetStringOffset C# (CSharp) Method

GetStringOffset() public method

Gets an offset of a string value. If it is not present in the strings heap, it will add it.
public GetStringOffset ( string value ) : uint
value string The string value to get the offset from.
return uint
        public uint GetStringOffset(string value)
        {
            if (string.IsNullOrEmpty(value))
                return 0;

            if (!_hasReadAllStrings)
                ReadAllStrings();

            if (_readStrings.ContainsValue(value))
                return _readStrings.First(rs => rs.Value == value).Key;

            uint offset = (uint)_mainStream.Length;
            _mainStream.Seek(offset, SeekOrigin.Begin);
            _binWriter.Write(Encoding.UTF8.GetBytes(value)); // data
            _binWriter.Write((byte)0); // terminator

            _readStrings.Add(offset, value);

            _streamHeader.Size = (uint)_mainStream.Length;

            return offset;
        }