如何在 VB.NET 中替换 List(Of String) 中的项目?

Chr*_*ula 2 .net vb.net list

我的一个项目遇到了问题。其中,我面临着索引问题的障碍。我有一个这样实例化的列表:

Public answers As List(Of String) = New List(Of String)
Run Code Online (Sandbox Code Playgroud)

通过以下代码将项目添加到此列表中:

Dim correctanswer As String = "" 'except the user changes the value with the GUI
frmMain.answers.Add(correctanswer)
Run Code Online (Sandbox Code Playgroud)

(顺便说一句,我只包含与这个怪物项目相关的部分,因此如果需要,我将根据请求发布更多代码。)

这段代码工作正常;但是,我试图允许用户随意修改每个列表项。我尝试通过以下方法做到这一点:

frmMain.answers.ElementAt(i) = correctanswer '(where 'i' is the index in question)
Run Code Online (Sandbox Code Playgroud)

并且编译器不喜欢这样。它在对我大喊大叫。

表达式不是值,因此不能作为赋值的目标。

现在,当我尝试替换类似列表中的项目时,我曾经遇到过这个问题;然而,这些项目是我自己的自定义类。这只是一个字符串列表。我也尝试了另一种方法:

frmMain.RemoveAt(i)
frmMain.Insert(i, correctanswer)
Run Code Online (Sandbox Code Playgroud)

问题是,列表的顺序会混淆。索引四处移动,最终变得一团糟,而不是按照我想要的方式进行。

有人可以帮我一下吗?

Pet*_*ete 5

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
Run Code Online (Sandbox Code Playgroud)

这应该打印:

答案A

答案C