2013-05-02 156 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