我的某个项目存在问题。在其中,我面临索引问题的障碍。我有一个以这种方式实例化的列表:
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)
问题在于,列表的顺序混淆了。索引会四处移动,最终会造成混乱,而不是按照我的意愿行事。
有人可以帮我一把吗?
答案 0 :(得分:3)
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