ASP.NET Arraylist, событие ButtonClick, удаляет строковое значение из массива при нажатии кнопки - PullRequest
0 голосов
/ 17 мая 2011

Я создаю веб-сайт и хочу создать страницу «флеш-карты», которая показывает интересные факты о теме, на которой основан сайт (музыка).

Я создал arraylist и добавил к нему некоторые «факты» в виде строкового значения.

У меня есть текстовое поле на моей странице, и у меня есть кнопка, и я хочу, чтобы каждый раз при нажатии кнопки в текстовом поле отображался другой факт.

Как лучше всего это сделать?

Извините, я новичок в этом деле и только начинаю понимать ASP.NET и VS.

EDIT

Спасибо, теперь я изменил список. Теперь я сохранил несколько строковых значений в этом списке и установил строковое поле с именем 'abc' (вот так);

public partial class _Default : System.Web.UI.Page
{

    private String abc;

    public void do9()
    {
        List<String> list = new List<String>();
        list.Add("aaa");
        list.Add("bbb");
        list.Add("ccc");
        list.Add("ddd");
        list.Add("eee");

        foreach (String prime in list) // Loop through List with foreach
        {
            abc = prime;
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        do9();
        TextBox1.Text = abc;
    }

}

Теперь, как я могу вернуть другое значение списка после события clickcliced? В настоящее время он возвращает только «Eee». Скажем, я хочу, чтобы он возвращал «ааа» и т. Д. Вместо того, чтобы нажимать кнопку каждый раз.

Еще раз спасибо!

1 Ответ

1 голос
/ 17 мая 2011

Arraylist вышел из моды с обобщениями, которые мы получили в .NET 2.0. Вы должны рассмотреть возможность использования List<string> вместо. Я также предлагаю алгоритм тасования, такой как тасование Фишера-Йейтса .

Я бы, наверное, вообще не занимался этой серверной стороной, но скорее всего в JavaScript. Вот случай Фишера-Йейтса в JavaScript .

EDIT

Вот один из способов получить случайный элемент из списка.

private static List<string> QuoteArray = new List<string> 
    {
        "All generalizations are false, including this one.",
        "Be careful about reading health books. You may die of a misprint.",
        "If you tell the truth, you don't have to remember anything.",
        "It usually takes me more than three weeks to prepare a good impromptu speech",
        "Water, taken in moderation, cannot hurt anybody.",
        "When I was younger I could remember anything, whether it happened or not."
    };

private static int LastQuoteIndex;

и в сом-классе где-то:

int i = 0;
var rnd = new Random();
do
{
    i = rnd.Next(QuoteArray.Count);
}
while (i == LastQuoteIndex);

LastQuoteIndex = i;
TextBox1.Text = QuoteArray[i];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...