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

C# 如何重复使用string.Format生成的字符串N次,c#,C#,在C中,我有一个列表: List<string> ls = new List<string>(); ls.Add("IR"); ls.Add("FR"); // list dynamically generated 我想要这样的结果: 选择lang=IR或lang=FR 我找到了一个方法: string result = string.Empty; foreach (string lng in ls) result += string.Format(langs,

在C中,我有一个列表:

List<string> ls = new List<string>();
ls.Add("IR");
ls.Add("FR"); // list dynamically generated
我想要这样的结果:

选择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);

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

只需要一行。加入将使您免于进行其他计数检查:

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

string langs = "select lang = ";

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

选择lang=IR或lang=FR


您可以通过将or添加到langs字符串中来保存…:或者,您可以使用for循环进行迭代,然后知道何时处于最后一个元素中,并且不添加or然后删除它。您不应该使用字符串连接来创建SQL查询。如果有人在你的ls中加上'OR 1=1怎么办?
    result = "Select " + string.Join("or ", ls.Select(l => l = string.Format(langs, l)));
string langs = "select lang = ";

List<string> ls = new List<string>() {"IR", "FR"};
string res = langs + string.Join(" or lang = ", ls);