示例#1
0
        public ListRand Deserialize(IEnumerable <string> fileLines)
        {
            var idMappings      = new Dictionary <int, ListNode>();
            var fileLinesStream = new FileLinesStream(fileLines);
            var converter       = new ListRandConverter();
            var list            = converter.ToListRand(fileLinesStream, idMappings);

            return(list);
        }
示例#2
0
        public IEnumerable <string> Serialize(ListRand list)
        {
            var idMappings = GenerateIdMappings(list);

            var converter      = new ListRandConverter(idMappings);
            var serializedList = SerializeListAsStream(list, idMappings);

            return(serializedList);
        }
示例#3
0
        private IEnumerable <string> SerializeListAsStream(ListRand list, IReadOnlyDictionary <ListNode, int> idMappings)
        {
            var listConverter = new ListRandConverter(idMappings);

            yield return(listConverter.ToString(list));

            var serializedNodes = SerializeNodesAsStream(idMappings, list.Head);

            foreach (var serializedNode in serializedNodes)
            {
                yield return(serializedNode);
            }

            yield return(listConverter.GetStringOfClosePart());
        }