2011-12-28 63 views
2

我想創建一個文本編輯器,它是文本字符串列表的前端。用戶可以在文本編輯器中進行更改,我希望能夠將更改推送回列表中的相應元素。 假設這是清單c#文本編輯器建模列表

List<string> element; 
element.Add("I was walking one morning,"); 
element.Add(" all of the sudden it started to rain,"); 
element.Add(" I opened my umbrella and looked for the closest coffee shop."); 
element.Add(" After few blocks I was sheltered enjoying my morning coffee."); 

它應該顯示在編輯器中常規文本:

我走一天早上,所有的突然開始下雨,我打開我的傘,看着爲最近的咖啡店。幾個街區後,我享受着早晨的咖啡。

因此,當用戶對「查找最近的」進行更改時,我想能夠告訴他他正在對元素[2]進行更改。

我還需要存儲關於各個元素(格式和其他東西)的更多信息,因此使用List。

我查看了HTML編輯器,並試圖在div中包裝每個句子,但是當用戶進行更改時,HTML編輯器將合併div或刪除它。因此會產生額外的工作。

我在想RTF,但在線閱讀時沒有設定標準。

我很靈活地執行列表和其他信息。

有沒有人有任何建議?

非常感謝。

+1

如果您需要存儲有關句子的額外信息,請考慮創建一個Sentence類並展示必要的方法/屬性。使用字符串列表不會爲您提供所需的功能(並非易事)。 – 2011-12-28 14:42:29

+0

我不明白。 「我一天早上走路」,不是一句話。它以逗號結尾,所以它是更長句子的一部分。如果你實際上是通過句子分裂的話,那麼你可以嘗試用'text.Split(new [] {'。','!','?'})'巧妙地做些事情。然後,只要沒有人刪除您的滿座,或插入新句子,您就可以跟蹤更改。請澄清您的要求,以便我們提供幫助。 – James 2011-12-28 14:45:57

+0

我最終會創建這個類,這是自然的發展過程,但我試圖在投入其他領域的時間之前弄清楚編輯器概念。 – curiousMo 2011-12-28 14:46:40

回答

0

要將列表顯示爲句子,您可以使用string.Join(「,」,sentence.ToArray())將列表中的字符串元素連接起來。

你將不得不添加一個句子分隔符(一些特殊字符),這將幫助你識別改變的句子。

您可以使用<變量>再次填寫您的列表.Split(',')。ToList()。

我希望這可以幫助你,快樂的編碼!

+0

將文本發送給編輯器沒什麼大不了的,它正在計算出正在編輯的區域是問題所在。使用特殊字符分隔列表將不起作用,使用可以刪除這些字符,並且會拋出列表。感謝壽。 – curiousMo 2011-12-28 15:19:29