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 索引的,即第一个元素是通过 访问[0]的,所以最后一个元素是[list size - 1]

因此,在您的情况下,textbox1.Text = list[list.Count-2];会将前一个字符串写入文本框。

但是,这不会为您提供适当的先前功能。再次按上一个不会给你list[list.Count-3]。但是,您可以有一个currentIndex变量,每当按下 previous 时都会减少一个变量,例如 do textbox1.Text = list[currentIndex]

于 2013-11-01T13:32:51.753 回答