0
我一直在反對這個問題我的頭撞了幾個小時現在,如果任何人在這裏可以提供任何指針,我將不勝感激。我想我現在被這個人蒙上了一層陰影,所以一組新的腦細胞可能會看到一個非常簡單的解決方案!.net數據轉換(一個對象類型到另一個) - 循環
基本上,我從遺留數據庫中提取了一些數據,需要通過構建我們自己的Stock對象來轉換爲我們的庫存管理系統。
簡化模型如下所示:
Public Class Stock
Public Property Attributes As List(Of StockAttribute)
End Class
Public Class StockAttribute
Public Property AttributeName As String
Public Property AttributeValue As String
End Class
源數據來作爲此目的:
Public Class SourceOption
Public Property OptionName As String
Public Property OptionValue As String
End Class
一些樣品的數據可以使用這些方法來構造:
Function GetSourceList1() As List(Of SourceOption)
'prepare the source data
Dim options As New List(Of SourceOption)
Dim opt As New SourceOption
opt.OptionName = "Size"
opt.OptionValue = "Small"
Dim opt2 As New SourceOption
opt.OptionName = "Size"
opt.OptionValue = "Medium"
Dim opt3 As New SourceOption
opt.OptionName = "Size"
opt.OptionValue = "Large"
Dim opt4 As New SourceOption
opt.OptionName = "Colour"
opt.OptionValue = "Black"
Dim opt5 As New SourceOption
opt.OptionName = "Colour"
opt.OptionValue = "Purple"
options.Add(opt)
options.Add(opt2)
options.Add(opt3)
options.Add(opt4)
options.Add(opt5)
Return (options)
End Function
Function GetSourceList2() As List(Of SourceOption)
'prepare the source data
Dim options As New List(Of SourceOption)
Dim opt As New SourceOption
opt.OptionName = "Size"
opt.OptionValue = "40"
Dim opt2 As New SourceOption
opt.OptionName = "Size"
opt.OptionValue = "41"
Dim opt3 As New SourceOption
opt.OptionName = "Size"
opt.OptionValue = "42"
options.Add(opt)
options.Add(opt2)
options.Add(opt3)
Return (options)
End Function
Function GetSourceList3() As List(Of SourceOption)
'prepare the source data
Dim options As New List(Of SourceOption)
Dim opt As New SourceOption
opt.OptionName = "Size"
opt.OptionValue = "Small"
Dim opt2 As New SourceOption
opt.OptionName = "Size"
opt.OptionValue = "Large"
Dim opt3 As New SourceOption
opt.OptionName = "Colour"
opt.OptionValue = "Red"
Dim opt4 As New SourceOption
opt.OptionName = "Colour"
opt.OptionValue = "Blue"
Dim opt5 As New SourceOption
opt.OptionName = "Style"
opt.OptionValue = "A"
Dim opt6 As New SourceOption
opt.OptionName = "Style"
opt.OptionValue = "B"
options.Add(opt)
options.Add(opt2)
options.Add(opt3)
options.Add(opt4)
options.Add(opt5)
options.Add(opt6)
Return (options)
End Function
因此,我的「轉換」方法需要採用SourceOption列表並構建庫存列表(使用Attrib茨)作爲解釋在這裏:
子轉換()
'we need to convert the SourceOption list (in GetSourceList) into a list of Stock, each with a list of StockAttribute. So in the case of GetSourceList1 we would have
'six stock objects, each stock object containing two StockAttribute objects (one for colour and one for size):
'STOCK1 - Attribute1: Size:Small Attribute2: Colour:Black
'STOCK2 - Attribute1: Size:Medium Attribute2: Colour:Black
'STOCK3 - Attribute1: Size:Large Attribute2: Colour:Black
'STOCK4 - Attribute1: Size:Small Attribute2: Colour:Purple
'STOCK5 - Attribute1: Size:Medium Attribute2: Colour:Purple
'STOCK6 - Attribute1: Size:Large Attribute2: Colour:Purple
'in the case of GetSourceList2 we would have three stock objects with only one stockattribute each (for size):
'STOCK1 - Attribute1: Size:40
'STOCK2 - Attribute1: Size:41
'STOCK3 - Attribute1: Size:42
'in the case of GetSourceList3 we would have eigth stock objects with three stockattribute each (for size, colour and style):
'STOCK1 - Attribute1: Size:Small Attribute2: Colour:Red Attribute3: Style:A
'STOCK2 - Attribute1: Size:Large Attribute2: Colour:Red Attribute3: Style:A
'STOCK3 - Attribute1: Size:Small Attribute2: Colour:Blue Attribute3: Style:A
'STOCK4 - Attribute1: Size:Large Attribute2: Colour:Blue Attribute3: Style:A
'STOCK5 - Attribute1: Size:Small Attribute2: Colour:Red Attribute3: Style:B
'STOCK6 - Attribute1: Size:Large Attribute2: Colour:Red Attribute3: Style:B
'STOCK7 - Attribute1: Size:Small Attribute2: Colour:Blue Attribute3: Style:B
'STOCK8 - Attribute1: Size:Large Attribute2: Colour:Blue Attribute3: Style:B
末次
我希望是十分明顯的,在此之前我撕所有我的頭髮出任何反饋真的可以理解!
感謝 卡爾