我目前正在VB.NET中编写一个辅助函数来将枚举值数组转换为CSV,但是我正在困扰一些......
如果我想让它足够通用以处理我传入它的任何枚举,我不确定我的函数应该采用什么类型的争论。
这是我到目前为止所得到的:
Public Shared Function EnumArrayToCSV(ByVal values() As System.Enum) As String
Dim result As Generic.List(Of String) = New Generic.List(Of String)
For i As Integer = 0 To values.GetUpperBound(0)
result.Add(Convert.ToInt32(values(i)))
Next i
Return String.Join(",", result.ToArray)
End Function
我意识到,当我使用一系列枚举时,争论是不正确的。理想情况下,我想使用一组通用的枚举值。
有人可以帮忙吗?
答案 0 :(得分:4)
Public Shared Function CSVFromEnumValues(Of T)(ByVal values As IEnumerable(Of T)) As String
Dim sb As New StringBuilder()
Dim delimiter As String = ""
For Each item As T In values
sb.Append(delimiter).Append(Convert.ToInt32(item).ToString())
delimiter = ","
Next item
return sb.ToString()
End Function
关于此代码的一些注意事项:
TypeFromType()
rather than TypeToType()
naming convention,因为它将类型放在包含它们的变量附近而不是相反。