public void InitTranslationPairsForDisplay() { var currLength = 0; var counter = 0; //Tuple<string, string> pairForDisplay = null; string item1 = string.Empty; string item2 = string.Empty; var lastPair = TranslationPairs.LastOrDefault(); foreach (var pair in TranslationPairs) { var prefix = " #" + /*++counter+*/ " "; item1 += prefix + pair.Item1; item2 += prefix + pair.Item2; currLength = Math.Max(item1.Length, item2.Length); if (currLength >= MaxCharactersPerTransaltion || pair.Equals(lastPair)) { TranslationPairsForDisplay.Add(new Tuple <string, string>(item1, item2)); item1 = string.Empty; item2 = string.Empty; } } }
public void InitTranslationPairs() { var rusTexts = TextRus.Split(separators, StringSplitOptions.RemoveEmptyEntries) .Select(i => i.Trim()) .Where(i => string.IsNullOrWhiteSpace(i) == false) .ToList(); var engTexts = TextEng.Split(separators, StringSplitOptions.RemoveEmptyEntries) .Select(i => i.Trim()) .Where(i => string.IsNullOrWhiteSpace(i) == false) .ToList(); var index = 0; foreach (var itemRus in rusTexts) { var itemEng = engTexts.Count > index ? engTexts[index] : "--error in matching translation--"; // 3 forms of translation index++; while (engTexts.Count > index && engTexts[index].ToString().StartsWith(SpecialSeparator3Forms)) { itemEng += engTexts[index]; index++; } TranslationPairs.Add(new Tuple <string, string>(itemRus, itemEng)); } }