1

実行しようとしているコードが機能していません:

private void clearRichtextBox()
        {
            richTextBox2.Clear();
            foreach (KeyValuePair<string, List<string>> kvp in LocalyKeyWords)
            {
                richTextBox2.AppendText("Url: " + kvp.Key + " --- " + "Localy KeyWord: " + kvp.Value);
            }

        }

LocalyKeyWordsは、リスト>タイプの辞書です。ここで、stringはキー、Listは値です。

たとえば、 http://www.google.comがキーであり、googleが値です。

この場合、LocalyKeywordsには3つのインデックスが含まれ、それぞれにキーと値があります。richTextBox2をクリアした後、リストからすべてのキーと値を次のような形式でrichTextBoxに追加したいと思います。

Url: http://www.google.com --- Localy Keyword: google
Url: http://www.cnet.com --- Localy Keyword: cnet
Url: http://www.microsoft.com --- Localy Keyword: microsoft

しかし、私はそれを私がしたように得ていません。

どうすればいいですか?foreachに何か問題があります。foreachではなくFORで作成することを好みます。

リストは、ハードディスクのテキストファイルのKey、Valueとして作成されます。fhr形式は次のようになります。

http://www.cnet.com,cnet

次に、コンストラクターでテキストファイルから読み取り、次のようにキーと値をリストに戻します。

private void richTextBoxLoadKeys(Dictionary<string, List<string>> dictionary, string FileName)
        {
            string line = System.String.Empty;
            using (StreamReader sr = new StreamReader(keywords))
            {
                while ((line = sr.ReadLine()) != null)
                {
                    string[] tokens = line.Split(',');
                    dictionary.Add(tokens[0], tokens.Skip(1).ToList());
                    richTextBox2.AppendText("Url: " + tokens[0] + " --- " + "Localy KeyWord: " + tokens[1]);
                }
                sr.Close();
            }
        }

コンストラクターにキーと値をロードし、リストのブレークポイントを使用した後、次のように表示されます。

ここに画像の説明を入力してください

4

2 に答える 2

1

kvp.Valueを反復処理する必要があります。これはリストでもあるため、リッチテキストボックスのリストから各アイテムを追加する必要があります。

于 2012-10-14T17:10:01.727 に答える
0

Valueの文字列を反復処理するか、Valueの最初の文字列を報告する必要があります。取得しているのは、リストのToString()です。あなたの例にはキーごとに1つのローカルキーワードしかないので、値のリストが本当に必要かどうか知りたいです。おそらく、代わりに辞書を作成する必要があります。

于 2012-10-14T17:09:13.697 に答える