我是这个社区的新手,我正在寻求有关如何改进我当前脚本的建议。以下是代码:
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为真:“动物类型:猫,老鼠” 在我目前的剧本中,我会得到:“动物类型:,猫,老鼠”,
答案 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)
首先,要加入字符串,我会考虑使用
连接构造的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)));