[英]Remove semicolons from list items
我有一個包含各種字符串記錄的列表。 一些記錄由分號分隔的各種子記錄組成。 例如如下
生活技能
沒有相關主題
通訊
職業; 聽力技巧; 個人發展; 提問技巧; 教練/輔導; 承認; 招聘與選拔。
客戶服務
體育
我現在想做的是遍歷記錄,將包含分號的所有記錄分開,並確保沒有重復 。
for(int i=0; i<lst.Count; i++) {
// seperate the records that contains ';' into individual unique items
}
我怎樣才能做到這一點?
List<String> lst = new List<string>();
lst.Add("Life Skills");
lst.Add("Life Skills");
lst.Add("Communication");
lst.Add("Careers; Listening Skills;Life Skills; Personal Development; Questioning Skills; Coaching/Mentoring; Recognition; Recruitment and Selection.");
lst.Add("No Related Topics");
List<string> newList = new List<string>();
foreach (string str in lst)
{
var temp = str.Split(';');
if (temp.Length > 1)
{
for (int i = 0; i < temp.Length; i++)
{
if (!newList.Contains(temp[i]))
{
newList.Add(temp[i]);
}
}
}
else
{
if (!newList.Contains(str))
{
newList.Add(str);
}
}
}
您可以使用Linq來實現它
lst = lst
.SelectMany(i => string.Split(";", i))
.Select(i => i.Trim())
.Distinct()
.ToList();
您想為程序實現某種解析器。 StackOverflow不會為您編寫程序,但是我建議您瀏覽http://boost-spirit.com/home/
如果出於許可原因選擇滾動自己,則加載文本輸入,或者將結果加載到緩沖區中,直到達到分號為止,然后將緩沖區復制到字符串中並將其推入數組將是理想的選擇。 從那里您可以繼續循環播放,直到到達文件末尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.