我必须根据他的计算值将一个字符串写入10个文件中的一个 - 每个值一个文件。该值在-5到+5的范围内,从不为零。
你知道一种更有效的方式吗
SELECT CASE value
CASE -5
Write2File(FileNameMinus5, string)
CASE -4
Write2File(FileNameMinus4, string)
CASE -3
Write2File(FileNameMinus3, string)
...
CASE +1
Write2File(FileNamePlus1, string)
CASE +2
Write2File(FileNamePlus2, string)
CASE +3
Write2File(FileNamePlus3, string)
...
END SELECT
我想像
这样的东西 Write2File(FileName%ContentOfValue%, string)
我该怎么做?
答案 0 :(得分:1)
使用此
Dim filename As String
If value < 0 Then
filename = FileName+"Minus"+Math.Abs(value)
Else
filename = FileName+"Plus"+value
End If
答案 1 :(得分:1)
您可以使用Dictionary来存储要写入的值和要使用的文件名
Dim mapping As Dictionary(Of Int32, String) = New Dictionary(Of Int32, String)
mapping.Add(-5, "FilenameMinus5")
mapping.Add(-4, "FilenameMinus4")
mapping.Add(-3, "FilenameMinus3")
mapping.Add(-2, "FilenameMinus2")
mapping.Add(-1, "FilenameMinus1")
mapping.Add(1, "FilenamePlus1")
mapping.Add(2, "FilenamePlus2")
mapping.Add(3, "FilenamePlus3")
mapping.Add(4, "FilenamePlus4")
mapping.Add(5, "FilenamePlus5")
现在写入文件只是从字典中提取文件名
Dim newValue = -5
Dim file = mapping(newValue)
Write2File(file, stringtobewritten)
您甚至可以将“词典”定义更改为直接存储在值部分中对数据执行的操作
Dim mapping As Dictionary(Of Int32, Action(Of String)) =
New Dictionary(Of Int32, Action(Of String))
mapping.Add(-5, Sub(value) Write2File("FilenameMinus5", value))
mapping.Add(-4, Sub(value) Write2File("FilenameMinus4", value))
mapping.Add(-3, Sub(value) Write2File("FilenameMinus4", value))
mapping.Add(-2, Sub(value) Write2File("FilenameMinus4", value))
mapping.Add(-1, Sub(value) Write2File("FilenameMinus4", value))
mapping.Add(1, Sub(value) Write2File("FilenamePlus1", value))
mapping.Add(2, Sub(value) Write2File("FilenamePlus2", value))
mapping.Add(3, Sub(value) Write2File("FilenamePlus3", value))
mapping.Add(4, Sub(value) Write2File("FilenamePlus4", value))
mapping.Add(5, Sub(value) Write2File("FilenamePlus5", value))
Dim stringToBeWritten = "TestData"
Dim newValue = -5
mapping(newValue)(stringToBeWritten)