2013-05-02 184 views
-7

我有一個列表(約18000項)的字符串,以及我需要在此列表中找到相同的子字符串。貝婁是一個例子: 列表例如: 「測試1」 「測試2」 「EST 2」 「west1」在字符串列表中搜索相同的子字符串

好,我需要這樣的結果:

「測試」 - 2

「EST」 - 4

「EST1」 - 2

「EST 2」 - 2

以及我需要它使用LINQ來快速搜索(如果可能)。 在此先感謝

+1

LINQ不一定使操作快。無論如何,LINQ被編譯成合適的循環... – MoonKnight 2013-05-02 09:19:54

+0

如果你展示[你迄今爲止嘗試過的],你會發現人們更願意提供幫助(http://www.whathaveyoutried.com)。 – anaximander 2013-05-02 09:20:45

+0

我認爲* all *字符串的任何解決方案(就像你的例子中)可能是O(N^2),所以它不會非常快。檢查每個單獨的字符串將是O(N)。只需確認:如果我們將字符串「e」添加到字符串示例列表中,那麼計數是5? (因爲它在「e」,「test」,「est」,「est1」和「est 2」) – 2013-05-02 09:22:32

回答

4

這是你想要什麼:

var listWithSubstring = originalList.Where(i => i.Contains("est")); 
+0

的子字符串.Count就夠了,但這也會覆蓋它 – WhileTrueSleep 2013-05-02 09:19:47

+0

那麼,我不確定@SergiuCojocaru想要什麼,但這應該夠了。雖然你可能是對的,但我可以在我的答案中提及'.Count' /'.Count()'。 – Zbigniew 2013-05-02 09:22:59

+0

井字符串可能包含也可能不包含est,我需要找到所有類似的子字符串。例如,如果在上面的列表中我將添加「home」和「omen」,算法將需要顯示以前的結果+ ome -2。所以實際上我不知道編碼階段的初始列表。 – 2013-05-02 10:34:01