簡體   English   中英

C#列表集合在方法之外失去其價值

[英]C# list collection loses its value outside of method

我是C#和ASP.NET框架的新手,似乎無法找到關於為什么在一種方法中添加到列表集合的值消失或無法在另一種方法中訪問的答案。 如果在創建列表后立即打印列表的內容,則會返回值,但是調試器會說在創建列表並以其他方法訪問之后,列表中沒有任何內容。

此類是列表的數據類型:

class Letter
{
    public char Character { get; set; }
    public bool Guessed { get; set; }
}

這是要聲明的列表(最后的打印確實可行):

private List<Letter> currentWord = new List<Letter>();

這是創建列表的方法:

protected void CreateCurrentWordList()
    {
        char[] letterArray = computerChoice.ToCharArray();
        for (int i = 0; i < letterArray.Length; i++)
        {
            currentWord.Add(new Letter { Character = letterArray[i], Guessed = false });
        }
        string displayString = PrintCurrentWord();
        TestLabel.Text = displayString;
    }

這是另一種方法的代碼塊,該方法無法訪問插入列表中的值,或者列表在調試器中顯示為空:

foreach (Letter letter in currentWord)
            {
                if (letter.Character.ToString() == userGuess)
                {
                    letter.Guessed = true;
                    displayString += letter.Character.ToString();
                }                   
            }

感謝您對其他回答此問題的幫助或指導。

編輯:向列表集合聲明中添加static關鍵字似乎已經解決了該問題。 謝謝皮傑!

原因可能有很多:

  1. 您有兩個或多個實例化的對象,其中之一沒有任何值。
  2. 您正在使用在將值添加到列表之前無法訪問值的方法的代碼塊。
  3. 您回發頁面,丟失列表中的數據。

我會嘗試將currentWord存儲在ViewState [“ myList”]中,以查看某些請求后是否具有值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM