[英]Check if string contains an element from list and store it
我的目標是檢查字符串是否包含列表中的任何字符串值,存儲該值並將其包裝在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
和void
作為matchedItems封裝在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
。 看來這要比我到目前為止提出的要簡單得多。
看來這要比我到目前為止提出的要簡單得多。
相反。 特別是,盡管您給出的示例很簡單,但一般情況卻並非如此:
public static void thisvoidmethodisstatic()
{
Console.WriteLine("private within text");
}
基本上,您將需要能夠更好地理解代碼結構的代碼。 簡單的搜索和替換不會減少它。
我在csharpindepth.com上使用的代碼突出顯示器基於Jared Parsons編寫的VB突出顯示器 。 我將查看是否可以找到原始源代碼-但是,如果不能找到,則可以確定還有其他開放源代碼突出顯示器可用。
編輯:如果您真的很滿意只進行一次簡單的搜索和替換,那么您肯定會使它變得比所需的更為復雜。
然后,您將得到:
foreach (var modifier in AccessModifiers)
{
if (ArticleTextBox.Text.Contains(modifier))
{
UsedItems.Add(modifier);
string openTag = "<span class='accessModifiers'>";
string closeTag = "</span>";
string newModifier = openTag + matchedItem + closeTag;
newText = newText.Replace(matchedItem, newModifier);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.