VB.Net 中任意字符串的 Directcast 或 ctype
Directcast or ctype on a any string in VB.Net
我想使用 directcast 或 ctype 之类的东西,但这次用于字符串。不幸的是,我不知道如何进行。
Public bttkey1color, bttkey2color, bttkey3color, bttkey4color, bttkey5color,
bttkey6color, bttkey7color as string
Dim myColor As String() = IO.File.ReadAllLines(My.Application.Info.DirectoryPath + ("\Color.txt"))
我怎样才能减少这段代码?不用我写几十遍了。
bttkey1color = myColor(1)
bttkey2color = myColor(2)
bttkey3color = myColor(3)
bttkey4color = myColor(4)
bttkey5color = myColor(5)
bttkey6color = myColor(6)
bttkey7color = myColor(7)
您可以使用 Color.FromName(String) Method.
为减少代码,使用 Color
数组作为结果,而不是单个变量。
' Test
Dim colorNames As String() = {"Lime", "Black", "Red"}
Dim colors As Color() = colorNames.
Select(Function(s) Color.FromName(s)).ToArray()
For Each c In colors
Console.WriteLine(c)
Next
版画
Color [Lime]
Color [Black]
Color [Red]
或者,如果您对 LINQ 不满意,这里有一个使用 For 循环的解决方案
Dim colorNames As String() = {"Lime", "Black", "Red"}
Dim colors(colorNames.Length - 1) As Color
For i = 0 To colorNames.Length - 1
colors(i) = Color.FromName(colorNames(i))
Next
For Each c In colors
Console.WriteLine(c)
Next
另见
我想使用 directcast 或 ctype 之类的东西,但这次用于字符串。不幸的是,我不知道如何进行。
Public bttkey1color, bttkey2color, bttkey3color, bttkey4color, bttkey5color,
bttkey6color, bttkey7color as string
Dim myColor As String() = IO.File.ReadAllLines(My.Application.Info.DirectoryPath + ("\Color.txt"))
我怎样才能减少这段代码?不用我写几十遍了。
bttkey1color = myColor(1)
bttkey2color = myColor(2)
bttkey3color = myColor(3)
bttkey4color = myColor(4)
bttkey5color = myColor(5)
bttkey6color = myColor(6)
bttkey7color = myColor(7)
您可以使用 Color.FromName(String) Method.
为减少代码,使用 Color
数组作为结果,而不是单个变量。
' Test
Dim colorNames As String() = {"Lime", "Black", "Red"}
Dim colors As Color() = colorNames.
Select(Function(s) Color.FromName(s)).ToArray()
For Each c In colors
Console.WriteLine(c)
Next
版画
Color [Lime]
Color [Black]
Color [Red]
或者,如果您对 LINQ 不满意,这里有一个使用 For 循环的解决方案
Dim colorNames As String() = {"Lime", "Black", "Red"}
Dim colors(colorNames.Length - 1) As Color
For i = 0 To colorNames.Length - 1
colors(i) = Color.FromName(colorNames(i))
Next
For Each c In colors
Console.WriteLine(c)
Next
另见