C#将结果切换为列表,然后切换为逗号分隔的值

C#将结果切换为列表,然后切换为逗号分隔的值,c#,C#,如何使switch语句填充列表或逗号分隔的字符串 比如说 switch(test) { case 0: "test" break; case 1: "test2" break; case 2: "test3" break; } 所以我的程序会多次进入这个语句。假设它进入两次,有案例2和案例1。我希望字符串值包含以下内容: string value=“test3,test2”看起来像是一个列表,非常适合保存

如何使switch语句填充列表或逗号分隔的字符串

比如说

switch(test)
{
   case 0:
      "test"
      break;
   case 1:
      "test2"
      break;
   case 2:
      "test3"
      break;
}
所以我的程序会多次进入这个语句。假设它进入两次,有案例2和案例1。我希望字符串值包含以下内容: string value=“test3,test2”

看起来像是一个
列表,非常适合保存您的值,您可以使用
string.Join()创建一个逗号分隔的字符串:

List myList=new List();
//添加项目
myList.Add(“test2”);
//从列表中的当前条目创建字符串
string myString=string.Join(“,”myList);
看起来像是一个
列表
最适合保存您的值,您可以使用
string.Join()创建一个逗号分隔的字符串:

List myList=new List();
//添加项目
myList.Add(“test2”);
//从列表中的当前条目创建字符串
string myString=string.Join(“,”myList);

多次,你指的是循环?您可以只使用一个字符串并使用+运算符连接该字符串,也可以只使用一个列表并在每次满足case条件时将其添加到该列表中


但是如果你指的是条件流,因此你希望对案例0、1和2都进行计算,那么你可以简单地省略中断,然后像我上面提到的那样进行相同的连接。

多次,你指的是循环?您可以只使用一个字符串并使用+运算符连接该字符串,也可以只使用一个列表并在每次满足case条件时将其添加到该列表中


但是,如果您指的是条件流,因此希望对案例0、1和2都进行求值,那么您可以简单地省略中断,并像上面提到的那样执行相同的连接。

使用循环和
StringBuilder
。如果您正在重复进行连接,
StringBuilder
s比naive
string
+
进行连接的效率要高得多

StringBuilder sb = new StringBuilder();

for(...)
{
    switch(test)
    {
        case 0:
        sb.Append("test");
        break;

        case1:
        sb.Append("test2");
        break;

        case 2:
        sb.Append("test3");
        break;
    }
}

使用循环和
StringBuilder
。如果您正在重复进行连接,
StringBuilder
s比naive
string
+
进行连接的效率要高得多

StringBuilder sb = new StringBuilder();

for(...)
{
    switch(test)
    {
        case 0:
        sb.Append("test");
        break;

        case1:
        sb.Append("test2");
        break;

        case 2:
        sb.Append("test3");
        break;
    }
}
无论你在哪里使用过StrValue remove,if都排在最后


在使用StrValue remove的地方,“if”排在最后。

有几种方法可以做到这一点,一种非常简单的方法是:

string csv = "";

while (yourCriteria) {
  string value;

  // insert code to get your test value

  switch(test)
  {
    case 0:
      value = "test";
      break;
    case1:
      value = "test2";
      break;
    case 2:
      value = "test3";
      break;
  }

  csv += value + ", ";
}

csv = csv.Length > 0 ? csv.Substring(0, csv.Length-2) : "";

有几种方法可以做到这一点,一种非常简单的方法是:

string csv = "";

while (yourCriteria) {
  string value;

  // insert code to get your test value

  switch(test)
  {
    case 0:
      value = "test";
      break;
    case1:
      value = "test2";
      break;
    case 2:
      value = "test3";
      break;
  }

  csv += value + ", ";
}

csv = csv.Length > 0 ? csv.Substring(0, csv.Length-2) : "";

如果您想在同一个地方多次传递,那么您的问题显然需要某种循环语句。无论如何,你必须在你的问题上更加简洁,因为不可能用你解释的方式来解释它。如果你想在同一个地方传递多次,你的问题显然需要某种循环语句。无论如何,你必须在你的问题上更加简洁,因为不可能用你解释的方式来解释它。