0

前と次のボタンを実装しようとしています。

ユーザーがテキストボックスから入力したもので満たされているlist1という文字列のリストがあります。リスト内の前の (最後ではない) 文字列にアクセスできません。ユーザーが何を入力するかわからないため、IndexOf メソッドは役に立ちません。

private void previousBtn_click(object sender, EventArgs e)
{ 
    getList();
    int min = 0;
    int max = list1.Count;
    if(max==min)
    {
        previousBtn.Visible = false;
    }
    else
    {
        int temp =list.Count-1;
        //how do I get my string if I know the element index from the previous line?
        //textbox1.Text = thatPreviousString; 
    }
}

申し訳ありませんが、簡単なはずですが、わかりません。値が私にはわからない場合、リスト内の以前の文字列を実際に取得するにはどうすればよいので、find() と indexOf だけを使用することはできません。MSDN は、 Itemというプロパティがあることを示していますが、その使用方法を示す適切なチュートリアルやコード ビットはありません。

更新: ユーザーが「www.google.com」、「www.facebook.com」、「twitter.com」、「www.yahoo.com」と入力したとします。この URL は list1 に保存されます。最後は「www.yahoo.com」で、Last() を呼び出すことで取得できます。ユーザーはいつでも前のボタンを押すことができるため、list1 の要素数を指定できません。動的に増加しています。呼び出すことによってのみ要素の数を取得できます

list1.Count and the last index by calling list1[list1.Count-1]

これで、インデックスと要素の数がわかったので、以前の文字列、たとえば "www.twitter.com" を取得するにはどうすればよいでしょうか。

ちなみに ElementAs は配列専用で、リストには使えません。

4

2 に答える 2

3

前の行の要素インデックスがわかっている場合、文字列を取得するにはどうすればよいですか?

int prevIndex; // element index from the previous line that you know
string temp = list1[prevIndex - 1];
于 2013-11-01T13:36:25.217 に答える
0

string temp =list[list.Count-1];リストの最後の要素が表示されます。

string temp =list[list.Count-2];前の要素が表示されます。

リストは 0-index であることに注意してください。つまり、最初の要素は 経由[0]でアクセスされるため、最後の要素は になります[list size - 1]

したがって、あなたの場合textbox1.Text = list[list.Count-2];、前の文字列をテキストボックスに書き込みます。

ただし、それでは以前の適切な機能は得られません。前をもう一度押しても、 は表示されませんlist[list.Count-3]currentIndexたとえば、前のキーが押されるたびにデクリメントする変数を持つこともできますtextbox1.Text = list[currentIndex]

于 2013-11-01T13:32:51.753 に答える