我的目标是检查字符串是否包含列表中的任何字符串值,存储该值并将其包装在 HTML 标记中。我有点迷失在这里。
我的列表:
public List<string> AccessModifiers
{
    get { return _accessModifiers ?? (_accessModifiers = new List<string>()); }
}
使用单独的方法添加值:
AccessModifiers.Add("public");
AccessModifiers.Add("private");
AccessModifiers.Add("protected");
AccessModifiers.Add("internal");
AccessModifiers.Add("protected internal");
AccessModifiers.Add("void");
假设我将文本protected void TagListView_ItemDataBound(object sender, ListViewItemEventArgs e)发送到下面的代码中,我想要的是获取关键字并将 matchItemsprotected包装void在我的 HTML 标记中。感觉 Find 方法应该检查是否找到了该项目,而不是整个列表,但我在这里有点迷失了。这是我到目前为止得到的:
        foreach (var item in AccessModifiers)
        {
            if (UsedItems == null) // If the session is null...
            {
                UsedItems = new List<string>(); // ...a new one is initiated
            }
            if(!UsedItems.Contains(item)) // Check if the iterated item is found in the session-list
            {
                bool match = AccessModifiers.Any(ArticleTextBox.Text.Contains);
                string matchedItem = AccessModifiers.Find(ArticleTextBox.Text.Contains);
                if (match == true)
                {
                    string openTag = "<span class='accessModifiers'>";
                    string closeTag = "</span>";
                    string newModifier = openTag + matchedItem + closeTag;
                    newText = newText.Replace(matchedItem, newModifier);
                    UsedItems.Add(matchedItem);  // Add the matchedItem (used item) to the session-list not to be iterated again
                }
            }
        }
        return newText;
我此时只能获取protected要存储的关键字,而不是void. 看起来它会比我迄今为止想出的更简单。