回答
你需要確保大集上的左側Except
(不知道是否有純粹的LINQ的方式來實現這一目標):
static void Main(string[] args)
{
string s1 = "i have a car a car";
string s2 = "i have a new car bmw";
List<string> diff;
IEnumerable<string> set1 = s1.Split(' ').Distinct();
IEnumerable<string> set2 = s2.Split(' ').Distinct();
if (set2.Count() > set1.Count())
{
diff = set2.Except(set1).ToList();
}
else
{
diff = set1.Except(set2).ToList();
}
}
這不工作,說不同的必須有論據。除了說:錯誤'System.Collections.Generic.IEnumerable
適用於.NET 3.5中的我是否正在使用.NET 2.0? – 2010-07-27 13:26:33
也許有些參考。你有什麼參考? – Luis 2010-07-27 13:29:37
可以使用差分算法此任務。論文「An O(ND) Difference Algorithm and Its Variations」描述了一個相當強大的算法來完成這項任務。對於C#中的實現,你可以看一下「An O(ND) Difference Algorithm for C#」,但是恕我直言,當你對算法如何工作的細節感興趣時,看看論文並自己實現它是非常有趣的。
基於你的問題(這有點含糊。)這應該工作。
var first = string1.Split(' ');
var second = string2.Split(' ');
var primary = first.Length > second.Length ? first : second;
var secondary = primary == second ? first : second;
var difference = primary.Except(secondary).ToArray();
在你的文件的頂部,請確保您有:
using System.Linq;
這將使這兩個字符串相同:「我有一輛車」和「我有一輛車」。但是,是的,不確定OP是否可以。 – 2010-07-27 13:08:51
這與重複? 例如「我有一輛車,我有」對「我有一輛車」 – Luis 2010-07-27 13:15:37
返回沒有結果,如果設置在左側 – 2010-07-27 13:29:32
它是由爲HTML,但是這工作真的很適合我:
http://www.rohland.co.za/index.php/2009/10/31/csharp-html-diff-algorithm/
您可能能夠爲您自己的目的進行修改。
- 1. 比較PHP兩個字符串,並顯示字符差異
- 2. Javascript比較字符串並獲得最終差異
- 3. 比較兩個xml文件並獲得差異
- 4. 比較兩個日期並獲得年,月,日的差異
- 5. 比較兩個數組並獲得所有差異
- 6. 比較兩個CSV文件,並獲得差異
- 7. 在Java中比較兩個字符串,並顯示字符差異
- 8. 如何比較tabels並獲得差異
- 9. 比較兩個arrayList並獲得最長匹配字符串
- 10. 比較兩個單字符數組並返回差異?
- 11. 比較兩個NSDictionaries並查找差異
- 12. 比較兩個字符串以獲得唯一性百分比
- 13. 比較並突出顯示包含html的兩個字符串的差異
- 14. 比較兩個字符串[]
- 15. 比較兩個字符串?
- 16. 比較兩個字符串
- 17. 比較兩個數據幀並得出差異
- 18. 比較兩列並確定R中的字符差異
- 19. Coldfusion,比較兩個TimeStamp以獲得時間差異
- 20. 比較兩個數組並獲得差異答案到另一個數組中
- 21. 比較兩個字符串值並返回公共字符串
- 22. PHP比較兩個字符串,並基於字符串
- 23. 如何比較2個數組並獲得差異
- 24. 比較2個MySQL表格,並獲得差異
- 25. 如何比較2個字符串並找出百分比的差異?
- 26. 比較生成數字差值的兩個字符串
- 27. 比較兩個不同的數組列表並獲得差異java
- 28. 比較兩個字符串作爲比較器中的最後一個差分?
- 29. C++比較兩個字符串文字
- 30. 比較兩個數字字符串值
我們是否可以假設你想它分裂的字邊界? – ChaosPandion 2010-07-27 13:05:41
「新」與「汽車」以及「汽車」與「寶馬」之間的空間如何?你需要知道在「汽車」之前發生過的其中一個單詞嗎? 「我有一輛新車」和「我有一輛新車」之間的區別是什麼? 「新」在這裏也有區別嗎?什麼刪除? 「我有一輛新車」與「我有一輛車」?你想知道「新」+空格被刪除了嗎?總之,你需要告訴我們一些你的假設或限制你的問題。 – 2010-07-27 13:06:06
@Lasse V. Karlsenno,在這種情況下,區別是「that」,「is」 @ChaosPandion,我想是:p。我不知道我該怎麼做:S – Luis 2010-07-27 13:08:24