2015-12-02 81 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 –