-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 中的问题:

ColorText.ColorListBox(data, e);

我怎么知道要添加的文本?ColorText.ColorListBox(data, e, "Local KeyWord");或者ColorText.ColorListBox(data, e, "Localy KeyWord");因为当我运行我的程序时它是 Localy KeyWord 但是当我添加一个新的 url 时它是“Local KeyWord”

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

问题是当我运行我的程序时,变量数据中的字符串是“Localy KeyWord:”,当我在程序运行时添加一个新的 url,那么在数据中,字符串是“Localy KeyWord:”

4

1 回答 1

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)
于 2013-02-18T09:29:28.173 回答