字符串输出查询
本文关键字:查询 输出 字符串 | 更新日期: 2023-09-27 18:29:34
我是这个社区的新手,我正在寻求如何改进当前脚本的建议。以下是代码:
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为真:"动物类型:猫,老鼠"在使用我当前的脚本时,我会得到:"动物类型:,猫,老鼠"
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);
首先,要连接字符串,我会考虑使用
String.Join方法
连接已构造的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));
最接近的直接匹配应该是以下几行:
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
我会用类似的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);
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);
我想说,定义一个字符串列表并在true的情况下输入值将是解决方案。然后,用分号作为分隔符将其连接起来。
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)));