如何在c#中的字符串列表中获取先前的值?

时间:2013-11-01 13:30:19

标签: c# winforms list

我正在尝试实现上一个和下一个按钮。

我有一个名为 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仅适用于数组,不适用于列表。

2 个答案:

答案 0 :(得分:3)

  
    

如果我知道前一行的元素索引,我如何得到我的字符串?

  
int prevIndex; // element index from the previous line that you know
string temp = list1[prevIndex - 1];

答案 1 :(得分: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变量,只要按下前一个变量就可以减少,例如textbox1.Text = list[currentIndex]