Esempio n. 1
0
        private static string GetSharedString(SharedStringTable table, int index)
        {
            var item = table.Descendants <SharedStringItem>()
                       .Skip(index)
                       .FirstOrDefault();

            if (item != null)
            {
                return(item.Text.InnerText);
            }
            return(string.Empty);
        }
Esempio n. 2
0
        /// <summary>
        /// Initializes the indexer from the target shared string table.
        /// </summary>
        /// <param name="toIndex">The shared string table to index.</param>
        private void Initialize(SharedStringTable toIndex)
        {
            this.SharedStringTable = toIndex;

            if (toIndex.Count > 0)
            {
                // Table already has entries
                var sharedStrings = toIndex.Descendants<SharedStringItem>()
                    .Select(x => x.InnerText);

                long idx = 0;
                foreach (var sharedStr in sharedStrings)
                {
                    this.indexDict[sharedStr] = idx;
                    this.strDict[idx] = sharedStr;
                    idx++;
                }

                this.currentIndex = toIndex.UniqueCount;
            }
        }