使用类结构列表时我遇到了无穷无尽的麻烦——我一直在尝试在控制台中制作字典。列表中的每个元素都有四个属性:.Word、.Definition、.Example 和 .IsDefined 布尔属性。该类如下所示:
Class Term
Public Word As String
Public Definition As String
Public Example As String
Public IsDefined As Boolean
End Class
我正在尝试编写的 sub 应该通过查找给定值的索引来更改列表中的值,然后它要求用户输入新数据,然后它应该更改对象。只有它在这里失败:
IndexPosition = TerminologyDictionary.IndexOf(Term1)
TerminologyDictionary 是一个 List(Of Term),而 Term1 是用户要求编辑的术语对象。TerminologyDictionary 中只有一个元素,它的所有四个属性都与 Term1 完全相同。我什至使用 QuickWatch 进行了检查,这些语句......
TerminologyDictionary(0).Word = Term1.Word
TerminologyDictionary(0).Definition = Term1.Definition
TerminologyDictionary(0).Example = Term1.Example
TerminologyDictionary(0).IsDefined = Term1.IsDefined
...无论我使用 Is 运算符还是等号,都评估为 True。但是当我测试 TerminologyDictionary(0) Is Term1 时,它返回 false。
我已经通过使用我自己的函数来遍历列表并手动测试每个属性并在它们都为真时返回一个索引来解决这个问题,但这很混乱,我想知道是否有一些简单的我做错了,或者如果有某种方法可以使用 .IndexOf。我知道有.FindIndex,但我不了解整个谓词,.IndexOf 要简单得多。
有人对出了什么问题有任何建议吗?提前致谢!