0
在我的原始代码中,我有一个包含2列的列表对象Word
和Percent
。我对列表进行排序,但只想要回只包含Word中VB.NET将二维列表复制到一维列表中
以下列表是一些示例代码分解成简单的东西:
Public Function SortMyWords() as list(of string)
Dim Words As WordsToSort
Dim ListofWords As New List(Of WordsToSort)
Words.Word = "John"
Words.Percent = "10"
ListofWords.Add(Words)
Words.Word = "Robert"
Words.Percent = "1"
ListofWords.Add(Words)
ListofWords = ListofWords.OrderBy(Function(x) x.Percent).ToList()
End Sub
Public Structure WordsToSort
Public Word As String
Public Percent As String
Public Sub New(ByVal _word As String, ByVal _percent As String)
Word = _word
Percent = _percent
End Sub
End Structure
在SortMyWords
函数的结尾,我只想返回Word
列作为列表,我不确定我是否可以直接执行此操作 - 即 Return Listofwords(column Word)
或是否需要将我的ListofWords
复制到新列表中,只包含列字 - 类似于此(不包含工作)
Dim Newlist As New List(Of String)
Newlist.AddRange(ListofWords(Words.Word))
Return NewList
任何关于我是否应该完全不同(和更好)这样做的建议会非常感谢,因为我试图让自己的头部围绕对象,尽管我一直都在使用它们,但我对结构和列表对象很陌生。
感谢您的任何帮助,这让我疯狂了一个小时。
我试图返回ListofWords,但我收到一个错误,说“类型'List(Of WordsToSort)'的值不能转换为'List(Of String)' - 它就好像列表中的字仍然是单维列表,我仍然可以从百分比列中获取变量,即 msgbox(ListofWords(1).Percent) 我不确定如何使用Linq,但我不介意因为我对SQL非常熟悉,它的非常类似于 –
'List(Of String)'似乎是你的方法的正确返回类型,所以只需在上面的一个查询之前键入一个'Return'。Btw。'List(Of)'总是一维的。这只是一个简单的列表。有一个'List(Of T)',其中'T'是一个具有属性的类,并不是一个列表多维。 – Waescher
你是一个明星 - 非常感谢你 - 我会upvote你的答案,但我还没有足够的积分,所以个人感谢你将不得不做 - 欢呼 –