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

时间:2014-08-02 01:37:40

标签: .net vb.net list

我的某个项目存在问题。在其中,我面临索引问题的障碍。我有一个以这种方式实例化的列表:

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)

问题在于,列表的顺序混淆了。索引会四处移动,最终会造成混乱,而不是按照我的意愿行事。

有人可以帮我一把吗?

1 个答案:

答案 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