2013-02-18 54 views
-1

这是我的代码:我怎样才能从一个字符串不仅匹配案件?

public static void ColorListBox(List<string> data, DrawItemEventArgs e, string word) 
     { 
      int keywords = 0; 
      string keyword = null; 
      string url = data[e.Index].Substring(0, 5); 
      if (data[e.Index].Contains(word))//"Local KeyWord:")) 
      { 
       keywords = data[e.Index].IndexOf(word);//"Local KeyWord:"); 
       keyword = data[e.Index].Substring(keywords, word.Length); 
      } 
      else 
      { 
       keywords = data[e.Index].IndexOf(word);//"Localy KeyWord:"); 
       keyword = data[e.Index].Substring(keywords, 15); 
      } 

问题在Form1中,当IM调用这个函数:

ColorText.ColorListBox(data, e); 

我怎么知道至极的文字补充?当IM运行我的程序ColorText.ColorListBox(data, e, "Local KeyWord");ColorText.ColorListBox(data, e, "Localy KeyWord");因为它是Localy关键字,但是当IM添加一个新的URL是“本地关键词”

打电话来覆盖所有的选项功能时,我需要在Form1中。 在我添加变量词之前,我使用了手动字符串“Local KeyWord”和“Localy Keyword”,但现在我想要做的事情是,我将输入的每个单词或词将作为单词在函数中使用。

问题是,当运行我的程序字符串中的可变数据IM是“Localy关键词:” 当我添加一个新的URL,而该程序是在数据的工作,则字符串“本地关键词:”

+0

比较参考串的loware情况下版本lowere'd数据HTTP:/ /msdn.microsoft.com/en-us/library/system.string.tolower.aspx – 2013-02-18 09:24:27

回答

1

因为这不仅仅是一个情况相比,但实际上不同的话,我就会尽快摆脱这些差异尽可能:

private const string LocalKeyword = "Local Keyword"; 
private static readonly Dictionary<string, string> keywords = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) 
{ 
    { "Localy KeyWord:", LocalKeyword }, 
    { "Localy Keyword", LocalKeyword }, 
    { "Local Keyword:", LocalKeyword }, 
    { ... } 
} 

if (!keywords.TryGetValue(rawKeyword, out realKeyword)) 
{ 
    throw new ApplicationException("Unknown keyword or keyword alias!"); 
} 
ColorText.ColorListBox(realKeyword, e) 
相关问题