C# 设置中的制表符

Tab character in C# settings

我正在尝试将 \t 之类的制表符放入 C# 应用程序的 settings 中(如 char)。 到目前为止我失败了。 我还尝试使用其他序列化作为 Binaryor XML,但没有成功。

所以我的简单问题是,您能否以某种方式将制表符放入 C# 中的应用程序/用户设置中?

更新:

它是 .NET 4.5.2

看来,string 类型也是有问题的。当我从例如粘贴选项卡时notepad++,它将一个新行加上一些空白字符放入 app.config 但没有制表符:

在配置文件

中使用	\t代替\t

要通过 VS 做到这一点 UI,请使用适用于几乎所有应用程序和案例的标准技巧,包括这个:在剪贴板上放置一个选项卡,然后将其粘贴到目标应用程序中。

对于其他将寻找如何在配置中保存 'TAB' 或 'SPACE' 等的人...

您可以简单地使用它来自 ASCII table (http://www.asciitable.com/) 的十进制值。因此,例如 space 字符的值为 32,制表符的值为 9。一些示例...:

示例 1:

在 App.config

中保存单个选项卡

config section:

<setting name="OneTabString" serializeAs="String">
    <value>9</value>
</setting>

Application section:

char tab = Convert.ToChar(int.Parse(Properties.Settings.Default.OneTabString));
string stringTab = tab.ToString();

示例 2:

在配置中保存多选项卡字符串(有很多方法可以做到这一点,但是例如...)

Config section

<setting name="MultiTabString" serializeAs="String">
    <value>9;9;9;9;9</value>
</setting>

Application section:

char[] tabs = Properties.Settings.Default.MultiTabString.GetCharsByDecimal(new char[] { ';' });
string stringTabs = string.Join(string.Empty, tabs);

//Extension method for getting chars by decimal from our string
public static char[] GetCharsByDecimal(this string inputString, char[] delimiters)
    {
        int[] charsDecimals = inputString.Split(delimiters, StringSplitOptions.RemoveEmptyEntries).Select(s => int.Parse(s)).ToArray();
        char[] resultChars = new char[charsDecimals.Length];

        for (int i = 0; i < charsDecimals.Length; i++)
        {
            resultChars[i] = Convert.ToChar(charsDecimals[i]);
        }

        return resultChars;
    }

//Or safer variant of our extension method
public static char[] GetCharsByDecimal(this string inputString)
    {
        int[] charsDecimals = Regex.Split(inputString, @"\D+").Select(s => int.Parse(s)).ToArray();
        char[] resultChars = new char[charsDecimals.Length];

        for (int i = 0; i < charsDecimals.Length; i++)
        {
            resultChars[i] = Convert.ToChar(charsDecimals[i]);
        }

        return resultChars;
    }

示例 3:

在配置中保存分隔符(包括制表符)

Config section

<setting name="Delimiters" serializeAs="Xml">
  <value>
    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <string>59</string>
      <string>44</string>
      <string>9</string>
      <string>45</string>
      <string>124</string>
      <string>32</string>
    </ArrayOfString>
  </value>
</setting>

Application section

char[] delimiters = Properties.Settings
                              .Default
                              .Delimiters
                              .Cast<string>()
                              .Select(s => Convert.ToChar(int.Parse(s))).ToArray();