在C#中取消引用字符串

Ala*_*irG 27 c# string

请原谅我的懒惰.我知道,我可以通过阅读来解决这个问题,但我想我会给你们其中一个C#天才有机会赢得一些代表.

我有一个INI文件中的数据文件,如某些C代码和一些C#代码需要读取的格式.C代码期望字符串值用引号括起来.C#等效代码使用了一些我无法控制的底层类,但基本上它包含引号作为输出字符串的一部分.即数据文件内容

MY_VAL="Hello World!"
Run Code Online (Sandbox Code Playgroud)

给我

"Hello World!"
Run Code Online (Sandbox Code Playgroud)

在我的C#字符串中,当我真的需要它来包含时

Hello World!
Run Code Online (Sandbox Code Playgroud)

我如何有条件地(在第一个和最后一个字符为")时删除引号并获取我想要的字符串内容.

Tur*_*Bas 60

在你的字符串上使用Trim和"as char:

.Trim('"')
Run Code Online (Sandbox Code Playgroud)

  • 请注意,有一个陷阱:根据定义 Trim“删除**所有**出现的一组字符的前导和尾随位置”。因此您可能会不小心删除太多引号。例如,当: `MY_VAL="c:\Users;\"c:\Program Files\""` Trim() 将从字符串末尾删除两个引号字符。 (3认同)

Fré*_*idi 8

我通常为此目的调用String.Trim():

string source = "\"Hello World!\"";
string unquoted = source.Trim('"');
Run Code Online (Sandbox Code Playgroud)


Kin*_*gon 6

我的实现?哎呀,引号来自双方

public string UnquoteString(string str)
{
    if (String.IsNullOrEmpty(str))
        return str;

    int length = str.Length;
    if (length > 1 && str[0] == '\"' && str[length - 1] == '\"')
        str = str.Substring(1, length - 2);

    return str;
}
Run Code Online (Sandbox Code Playgroud)