字符串输出查询

时间:2013-08-30 11:34:37

标签: c# string

我是这个社区的新手,我正在寻求有关如何改进我当前脚本的建议。以下是代码:

if (condition1 == true) string stringname  = "dog";
if (condition2 == true) string stringname1 = "cat";
if (condition3 == true) string stringname2 = "mouse";
if (condition4 == true) string stringname3 = "crab";

Format.String("Animal Type: {0}, {1}, {2}, {3}", stringname, stringname1, stringname2, stringname3); // print to output

具体来说,我希望能够以下列方式在输出窗口中显示结果:

示例1: 假设条件1和3为真且2和4为假:“动物类型:狗,小鼠” 在我目前的剧本中,我会得到:“动物类型:狗,老鼠,”

示例2: 假设条件2和3为真:“动物类型:猫,老鼠” 在我目前的剧本中,我会得到:“动物类型:,猫,老鼠”,

6 个答案:

答案 0 :(得分:3)

var animals = new List<string>();
if (condition1) animals.Add("dog");
if (condition2) animals.Add("cat");
if (condition3) animals.Add("mouse");
if (condition4) animals.Add("crab");
string result = "Animal Type: " + string.Join(", ", animals);

答案 1 :(得分:0)

首先,要加入字符串,我会考虑使用

String.Join Method

  

连接构造的IEnumerable(Of T)集合的成员   String类型,使用每个成员之间的指定分隔符。

所以你可以试试像

这样的东西
List<string> vals = new List<string>();
if (condition1) vals.Add("dog");
if (condition2) vals.Add("cat");
if (condition3) vals.Add("mouse");
if (condition4) vals.Add("crab");

然后尝试类似

的内容
Format.String("Animal Type: {0}, String.Join(",", vals));

答案 2 :(得分:0)

最接近的直接匹配将是:

console.WriteLine(string.Format("Animal Type: {0}, {1}, {2}, {3}", (condition1 ? "dog", ""), (condition2 ? "cat", ""), (condition3 ? "mouse", ""), (condition4 ? "crab", ""))); // print to output

使用您的代码,您只能为if的范围声明变量。

另一种方法是将它们推入列表,例如:

var selected = new List<string>();
if (condition1 == true) selected.Add("dog");
if (condition2 == true) selected.Add("cat");
if (condition3 == true) selected.Add("mouse");
if (condition4 == true) selected.Add("crab");

console.WriteLine(string.Format("Animal Type: {0}", string.Join(", ", selected.ToArray()))); // print to output

答案 3 :(得分:0)

我会使用像这样的HashSet

 var animals = new HashSet<string>();
 if (condition1) animals.Add("dog");
 if (condition2) animals.Add("cat");
 if (condition3) animals.Add("mouse");
 if (condition4) animals.Add("crab");
 string result = "Animal Type: " + string.Join(", ", animals); 

答案 4 :(得分:0)

 string output = "Animal Type: ";
            if (condition1 == true) output  += "dog ,";
            if (condition2 == true) output += "cat ,";
            if (condition3 == true) output += "mouse ,";
            if (condition4 == true) output += "crab ,";

            output = output.Substring(0, output.Length - 2);

答案 5 :(得分:0)

我会说,定义一个字符串列表并输入你的值,如果是真的将是解决方案。 之后,以分号作为分隔符加入。

List<string> outList = new List<string>();
if (true) outList.Add("dog");
if (false) outList.Add("cat");
if (true) outList.Add("mouse");
if (false) outList.Add("crab");
Console.Write(String.Format("Animal Type: {0}", String.Join(",", outList)));