我的一个项目遇到了问题。其中,我面临着索引问题的障碍。我有一个这样实例化的列表:
Public answers As List(Of String) = New List(Of String)
通过以下代码将项目添加到此列表中:
Dim correctanswer As String = "" 'except the user changes the value with the GUI
frmMain.answers.Add(correctanswer)
(顺便说一句,我只包含与这个怪物项目相关的部分,因此如果需要,我将根据请求发布更多代码。)
这段代码工作正常;但是,我试图允许用户随意修改每个列表项。我尝试通过以下方法做到这一点:
frmMain.answers.ElementAt(i) = correctanswer '(where 'i' is the index in question)
并且编译器不喜欢这样。它在对我大喊大叫。
表达式不是值,因此不能作为赋值的目标。
现在,当我尝试替换类似列表中的项目时,我曾经遇到过这个问题;然而,这些项目是我自己的自定义类。这只是一个字符串列表。我也尝试了另一种方法:
frmMain.RemoveAt(i)
frmMain.Insert(i, correctanswer)
问题是,列表的顺序会混淆。索引四处移动,最终变得一团糟,而不是按照我想要的方式进行。
有人可以帮我一下吗?
frmMain.answers(i) = correctanswer
这是一个小例子:
Dim answers As List(Of String) = New List(Of String)
answers.Add("Answer A")
answers.Add("Answer B")
answers.Add("Answer C")
Dim correctanswer As String = ""
answers(1) = correctanswer
For Each str As String In answers
Console.WriteLine(str)
Next
这应该打印:
答案A
答案C