在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);
但我认为还有更好的方法。有什么想法吗?
答案 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