LINQ的两个字符串搜索相同的组合

问题描述:

我有两个字符串LINQ的两个字符串搜索相同的组合

string a="1,2,3"; 

string b="2,4,6,7,8" 

我要搜索两个字符串相同的号码。在LINQ中最好的方法是什么?

这个例子比较一下串明智不过:

var chars = 
    from n1 in a.Split(',') 
    join n2 in b.Split(',') on n1 equals n2 
    select n1; 

如果你真的要比较的数字,它是更容易分裂的字符串,并使用扩展方法一样Enumerable.Intersect。 如果你想要一个更高效的方法,你应该寻找在两个字符串之间检索largest common substring的实现,比如*中的一个。这样可以避免Enumerable.Intersect实现中的分裂和可能的低效率成本。如果您搜索,您肯定会发现更有效的LCS实现。