2015-12-02 50 views
0

我需要创建一个最终需要在下拉列表中填充的分隔符列表。该列表应基本上包含如下字符:需要创建一个下拉列表分隔符

!,@,#,$,〜,逗号,等等。 。他们不应该被硬编码。

我已经有了这个硬编码,但客户端需要现在所有的ASCII分隔符。

public SelectList Delimiters 
    { 
     get 
     { 
      var delims = new Dictionary<string, string> 
      { 
       {"None", string.Empty}, 
       {",", ","}, 
       {".", "."}, 
       {"/", "/"}, 
       {"#", "#"}, 
       {"|", "|"}, 
       {"Tab", "\t"} 
      }; 

      return new SelectList(delims, "Value", "Key"); 
     } 
    } 

我们如何将其转换为包含所有没有硬编码的特殊字符?

+1

硬编码分隔符有什么问题?我怀疑框架中的某个地方是否有完整的列表,因为您可以使用每个字符或字符串作为分隔符。 –

+0

输入每个特殊字符都是一项任务。所以我觉得会有办法一次性引入所有的分隔符。 –

+0

所以除了上面的那些,你希望所有其他ascii字符作为定界符,其值等于键? –

回答

0

所以你想要一个所有可打印字符的完整列表?也许...

Dictionary<string, string> delims = 
    Enumerable.Range(char.MinValue, char.MaxValue - char.MinValue) 
    .Select(i => Convert.ToChar(i)) 
    .Where(c => !Char.IsControl(c)) 
    .ToDictionary(c => c.ToString(), c => c.ToString()); 

本字典包含超过65400个字符,如果这就是你想要的。

+0

谢谢为答案。但是,我们可以调整此代码只为第一个128个字符带来字符...请参阅链接http://www.dotnetperls.com/ascii-table –

+0

@SandyW:是的,而不是'char.Maxvalue'使用128 –