如何重复使用string.Format生成的字符串N次

时间:2017-07-25 06:02:16

标签: c#

在C#中我有一个列表:

List<string> ls = new List<string>();
ls.Add("IR");
ls.Add("FR"); // list dynamically generated

和一个字符串:

string langs = "select lang = {0} ";

我想要一个这样的结果:

  

选择lang = IR或lang = FR

我找到了一种方法:

string result = string.Empty;
foreach (string lng in ls)
    result += string.Format(langs, lng) + "or ";
if (ls.Count > 0)
    result = result.Remove(result.Length - 3, 3);

但我认为还有更好的方法。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

只需要一行。 Join会使您免于额外的Count次检查:

    result = "Select " + string.Join("or ", ls.Select(l => l = string.Format(langs, l)));

答案 1 :(得分:2)

我会将langs字符串更改为子句的简单开头:

string langs = "select lang = ";

List<string> ls = new List<string>() {"IR", "FR"};

然后String.Join" or lang = "

分隔的元素
string res = langs + string.Join(" or lang = ", ls);

输出是:

  

选择lang = IR或lang = FR

相关问题