我需要将带有双引号的字符串作为参数传递给代理方法,如下所示:
public void CallProxyMethod()
{
//SomeProxyClass derives from Systems.Collections.Generic.List<string>
var parameters = new SomeProxyClass() {"parameter1", "paramter2", "parameter3"};
SomeProxyMethod(parameters);
}这些参数值从配置文件中读取。
<add key=Parameters" value="parameter1, parameter2, parameter3"/>我尝试用逗号拆分配置值并向它们添加双引号,但最后在上面的SomeProxyClass中得到了以下值:
“\”参数1\“”、“\”参数2\“、”\“参数3\”。
我在这个类中需要的值是:
"parameter1“"paramter2”"parameter3“。
如何将"parameter1,parameter2,parameter3"转换为"parameter1","paramter2","parameter3" in C#?
发布于 2017-05-22 21:50:50
像这样的东西应该管用..。
var items = "item1, item2, item3";
var newItems = "\"" + string.join("\",\"", items.split({","})) + "\"";发布于 2017-05-22 22:05:53
您可以通过以下方式实现这一点:
var yourString = "parameter1, parameter2, parameter3";
var result = $"\"{yourString.Replace(",",@"","")}\"";发布于 2017-05-23 00:57:43
尝试使用StringBuilder代替。
static class Quotes
{
public static StringBuilder DoubleQuotes(params string[] parameters)
{
char quote = '\u0022';
string value = null;
for (int i = 0; i < parameters.Length; i++)
{
parameters[i] =
parameters[i]
.Insert(0, quote.ToString())
.Insert(parameters[i].Length + 1, quote.ToString());
value += parameters[i];
}
value = String.Join(", ", parameters);
StringBuilder builder = new StringBuilder(value);
return builder;
}在这种情况下,您必须从List<string>更改为List<StringBuilder>。我希望这能帮到你。
public void CallProxyMethod()
{
var withHelperMethod = new SomeProxyClass()
{
Quotes.DoubleQuotes("parameter1", "parameter2"),
Quotes.DoubleQuotes("parameter3")
};
var withoutHelperMethod = new SomeProxyClass()
{
new StringBuilder("\"parameter1\""),
new StringBuilder("\"parameter2\""),
};
SomeProxyMethod(withHelperMethod);
SomeProxyMethod(withoutHelperMethod);
}

https://stackoverflow.com/questions/44122621
复制相似问题