0

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

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 为真:“动物类型:猫,老鼠” 虽然使用我当前的脚本,我会得到:“动物类型:,猫,老鼠”

4

6 回答 6

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);
于 2013-08-30T11:39:49.847 回答
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)));
于 2013-08-30T11:47:39.870 回答
0

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

String.Join 方法

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

所以你可以尝试类似的东西

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));
于 2013-08-30T11:39:36.607 回答
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
于 2013-08-30T11:40:46.557 回答
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); 
于 2013-08-30T11:42:28.563 回答
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);
于 2013-08-30T11:42:46.507 回答