---
title: "Select Case och dynamiska multi-case-satser?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/152050-select-case-och-dynamiska-multi-case-satser"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Lukaspojken"
published: "2006-10-04T08:47:48.000Z"
updated: "2006-10-04T11:48:11.000Z"
replies: 2
views: 553
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/152050-select-case-och-dynamiska-multi-case-satser"
---

# Select Case och dynamiska multi-case-satser?

## #1 — Lukaspojken, 2006-10-04T08:47Z

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?

Permalänk: https://www.webforum.nu/p/152050

## #2 — headbug, 2006-10-04T10:41Z

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.

Permalänk: https://www.webforum.nu/p/1877025

## #3 — toha, 2006-10-04T11:48Z

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:
    }
}
```

Permalänk: https://www.webforum.nu/p/1877042

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/152050-select-case-och-dynamiska-multi-case-satser
