【发布时间】:2018-09-08 01:36:16
【问题描述】:
我有三个字符串列表,目的是将这些列表组合成一个带有分隔符的字符串。
List<string> list1=new List<string>{"A","B","C"};
List<string> list2=new List<string>{"=","<", ">"};
List<string> list3=new List<string>{"1","2","3"};
最终输出如下:
A=1 AND B<2 AND C>3
有没有什么简单的方法可以生成最终的字符串?我使用了for循环,但它似乎很难看。我知道 C# 字符串有 Join 方法来组合数组和分隔符。如何用分隔符组合多个数组?
下面是我的代码:
StringBuilder str = new StringBuilder();
for(int i=0; i< list1.count; i++)
{
str.AppendFormat("{0}{1}{2} AND ", list1[i], list2[i], list3[i]);
}
str.Length = str.Length -5;
string final = str.ToString();
【问题讨论】:
-
我意识到它并不能真正回答您的问题,但如果数据位于多 (2) 维数组中,您的问题可能会更容易解决;或者您的三个列表都包含在父列表中
-
为此使用 for 循环绝对没问题。如果你真的觉得它看起来太丑了,你仍然可以将它包装成一个单独的方法来“隐藏”代码中的循环。
-
您对所有内容都使用列表?为什么不使用具有
Operator、Variable和Value属性的单个List<Comparison>?无需通过索引加入多个集合,这在大多数情况下都是需要重构的代码味道。此类可以覆盖ToString以返回您要求的内容。 -
str.Length = str.Length -5;不起作用str.Length是只读的