gpt4 book ai didi

vb.net - 如何在枚举中包含整数字符串?

转载 作者:行者123 更新时间:2023-12-02 08:57:28 26 4
gpt4 key购买 nike

我知道这是一个正确的枚举:

Private Enum Months
JANUARY = 1
FEBRUARY = 2
...
End Enum

但是,我想要一个枚举,其中字符串仅是整数。

示例:

Private Enum ColumnCounts
01 = 5
02 = 4
03 = 40
End Enum

01、02、03都是字符串。但是,如果我输入“01”、[01] 或只是 01,它会告诉我它期望枚举结束,并且它不是有效的语句。有什么方法可以实现我所缺少的吗?我什至尝试过。 01.ToString(),但这不是一个选项。 :) 感谢任何和所有的帮助。谢谢。

编辑:

Public Class Part

Private Enum ColumnCounts
f01 = 39
End Enum

Public Shared Function ValidateColumns(ByRef lstFields As List(Of String)) As Boolean
For Each colCount In [Enum].GetValues(GetType(ColumnCounts))
If colCount = "f" + lstFields(1) Then
'Right here I need to compare the count of the list vs. the value of the enum.'
Return True
End If
Next

Return False
End Function
End Class

本质上,我不想把 f 放在那里,只是想做 01。调用的方式是:

Select Case (nRecordType)
Case "01"
...
Case "02"
...
Case "03"
Return Part.ValidateColumns(_lstFields)
End Select

因为我没有创建它的实例,也没有调用构造函数,所以无法自动填充字典。我不想转换为整数,所以我不打算做一个数组。这是为了以防万一该值最终超过 99 并且下一个值将是 A0。我正在尝试考虑 future 对此的简单更改以及向后兼容性。如果您需要更多解释,请告诉我。

编辑2:

这就是我现在所做的,我认为它应该有效:

Public Class Part

Private Shared columnCounts As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)

Public Shared Function ValidateColumns(ByRef lstFiels As List(Of String)) As Boolean
InitializeColumnDictionary()

Return lstFields.Count = columnCounts(lstFields(1))
End Function

Private Shared Sub InitializeColumnDictionary()
columnCounts.Add("01", 39)
End Sub
End Class

我现在还不能测试它,所以我无法验证它是否会做我想做的事情,但是当我构建它时它不会给我一个错误,所以我我交叉手指。

最佳答案

整数本身不是有效的标识符。为什么要将 01 称为标识符?在枚举元素前面加上一个字母,就完成了:

i01,
i02
...

根据您的编辑进行编辑:声明一个静态字典并在静态方法中填充它(如果它为空):

private static void yourMethod()
{
if (ColumnCounts == null)
{
ColumnCounts = new Dictionary<String, int>();
ColumnCounts.Add("01", 39);
ColumnCounts.Add("02", 45);
ColumnCounts.Add("03", 12);
ColumnCounts.Add("04", 0);
}




}



private static Dictionary<String, int> ColumnCounts = null;

关于vb.net - 如何在枚举中包含整数字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3890226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com