public ObservableCollection<Words> LoadWordsDictionary(String selectedCulture)
        {
            ObservableCollection<Words> myReturnCollection = new ObservableCollection<Words>();
            String myLine;
            String myText;
            String[] myWords;
            Words myWordsObject;

            System.IO.StreamReader textstream;

            try
            {
                textstream = new System.IO.StreamReader("Extensions\\Face2Speech\\Dictionary\\words_" + selectedCulture + ".txt", System.Text.Encoding.UTF8);
            }
            catch (Exception)
            {

                textstream = new System.IO.StreamReader("Extensions\\Face2Speech\\Dictionary\\words_de-DE.txt", System.Text.Encoding.UTF8);
            }

            while (textstream.Peek() >= 0)
            {
                myLine = textstream.ReadLine();
                myText = myLine.ToUpper();
                myWordsObject = new Words();
                myWordsObject.NextWords = new List<String>();

                if (myLine.IndexOf(";") > 0)
                {
                    //Wenn ; vorhanden, dann sind auch sinnvolle darauffolgende Wörter vorhanden, die gespeichert werden.
                    myWords = myLine.Split(new Char[] { ';' });

                    for (int i = 0; i < myWords.Length; i++)
                    {
                        myText = myWords[i].ToUpper();
                        if (i == 0)
                        {
                            myWordsObject.Text = myText;
                        }
                        else
                        {
                            myWordsObject.NextWords.Add(myWords[i].ToUpper());
                        }
                    }
                }
                else
                {
                    myWordsObject.Text = myText;

                }
                myReturnCollection.Add(myWordsObject);
            }
            return myReturnCollection;
        }
        public ObservableCollection<Words> GetFirstLines(ObservableCollection<Words> AllWords, String LastWord, SearchType mySearchType)
        {
            ObservableCollection<Words> myReturnCollection = new ObservableCollection<Words>();
            Dictionary<String, Words> addedWords = new Dictionary<string, Words>();
            Words newWord;
            IEnumerable<Words> proposalWords;

            if (mySearchType == SearchType.All || mySearchType == SearchType.OnlyEqual)
            {
                proposalWords = AllWords.Where(myWord => myWord.Text.Equals(LastWord)).OrderBy(x => x.Text.Length).Take(10);

                proposalWords.ToList().ForEach(myWord =>
                {
                    if (!addedWords.ContainsKey(myWord.Text) && myReturnCollection.Count < 10)
                    {
                        Number = Number + 1;
                        if (Number <= 10)
                        {
                            if (Number == 10)
                            {
                                Number = 0;
                            }

                            addedWords.Add(myWord.Text, myWord);
                            newWord = new Words();
                            newWord.Text = string.Format("{0}: {1}", Number, myWord.Text);
                            newWord.NextWords = myWord.NextWords;
                            myReturnCollection.Add(newWord);
                        }
                    }
                });
                if (myReturnCollection.Count == 0)
                {
                    Number = Number + 1;
                    if (Number <= 10)
                    {
                        if (Number == 10)
                        {
                            Number = 0;
                        }
                        newWord = new Words();
                        newWord.Text = string.Format("{0}: {1}", Number, LastWord);
                        //newWord.NextWords = myWord.NextWords;
                        myReturnCollection.Add(newWord);
                    }
                }
            }

            if (mySearchType == SearchType.All || mySearchType == SearchType.OnlyStartsWith)
            {

                proposalWords = AllWords.Where(myWord => myWord.Text.StartsWith(LastWord)).OrderBy(x => x.Text.Length).Take(10);

                proposalWords.ToList().ForEach(myWord =>
                {
                    if (!addedWords.ContainsKey(myWord.Text) && myReturnCollection.Count < 10)
                    {
                        Number = Number + 1;
                        if (Number <= 10)
                        {
                            if (Number == 10)
                            {
                                Number = 0;
                            }

                            addedWords.Add(myWord.Text, myWord);
                            newWord = new Words();
                            newWord.Text = string.Format("{0}: {1}", Number, myWord.Text);
                            newWord.NextWords = myWord.NextWords;
                            myReturnCollection.Add(newWord);
                        }

                    }
                });
            }

            return myReturnCollection;
        }