Finns det något smart sätt att skapa en dynamisk flervärdes case? Så här skulle jag vilja att det fungerar men case:n tar inte emot en en-dimensionell-array.
Dim StrCaseExpression As String = "9;2"
Dim StrInputParameter As String = "2"
Select Case StrInputParameter
Case Split(StrCaseExpression , ";")
'kod
Case Else
'kod
End Select
Jag vill inte skriva "Case 9, 2" eftersom StrCaseExpression kan skilja sig åt i dels värden och antal värden. Är det möjligt att lösa detta via en select case?
headbugMedlem sedan sep. 2006867 inlägg Hur har du tänkt dig att case:n ska gälla? Är caset 9;3;2;41 unikt eller en konkatenering av innehållet i case 9, 3, 2 och 41?
I fallet ett unikt dynamiskt case så måste du ju ändå skriva just ett case för varje tänkbar kombination (låter krångligt) så då kan du tex göra flernivåcase. I det andra fallet så kan du ju loopa igenom med en for each eller en for-slinga och samla på dig case-innehåll.
tohaMedlem sedan dec. 1999707 inlägg Lägg det i en hashtable och kolla värdet av inputsträngen. Ex i c#:
Hashtable h = new Hashtable();
h.Add("2", "case_01");
h.Add("9", "case_01");
h.Add("10", "case_02");
h.Add("12", "case_02");
string StrInputParameter = "2";
if (h.Contains(StrInputParameter))
{
switch (h[StrInputParameter].ToString())
{
case "case_01" :
...
break;
case "case_02" :
...
break;
default:
}
}