私の目標は、文字列にリストの文字列値が含まれているかどうかを確認し、その値を格納して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)
を送信したとしましょう。必要なのは、キーワードを取得し、protected
matchedItemsとして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
。私がこれまでに思いついたものよりも簡単なようです。