private static Offset <Sentence> BuildSingleFlatSent(FlatBufferBuilder builder, SentenceMap sentence, int order) { // Чтение слов var words = new Offset <Lexema> [sentence.Capasity]; for (int i = 0; i < sentence.Capasity; i++) { var word = sentence.GetWordByOrder(i); var EntryName = builder.CreateString(word.EntryName); var RealWord = builder.CreateString(word.RealWord); // Чтение граммем var pairs = word.GetPairs(); var grammems = new Offset <Grammema> [pairs.Count]; int j = 0; foreach (var pair in pairs) { grammems[j] = Grammema.CreateGrammema(builder, pair.Key, pair.Value); j++; } var gramsCol = Lexema.CreateGrammemsVector(builder, grammems); words[i] = Lexema.CreateLexema(builder, i, EntryName, word.ID_Entry, word.ID_PartOfSpeech, gramsCol, 0, RealWord, word.rcind); } var wordsCol = Sentence.CreateWordsVector(builder, words); // Чтение узлов var treelist = sentence.GetTreeList(); var nodes = new Offset <Node> [treelist.Count]; for (int i = 0; i < treelist.Count; i++) { nodes[i] = Node.CreateNode(builder, treelist[i].ID, treelist[i].Level, treelist[i].index, treelist[i].linktype, treelist[i].parentind); } var nodesCol = Sentence.CreateNodesVector(builder, nodes); var sentVal = builder.CreateString(""); return(Sentence.CreateSentence(builder, order, nodesCol, wordsCol, sentVal)); }