.NETのテキストを比較し、その違いを教えてもらう方法はありますか?私。 "abc123efg"と "abc456efg"の違いは、インデックス3からインデックス5で始まる "123"と "456"です。.NET Frameworkのテキストを比較する
私はこれを行うためのコードを書くことができますが、 .NET Frameworkに存在する場合、私はそれを使用したいと思います。あるいは、それを行うオープンソースライブラリがある場合は、それも良い選択肢になります。
.NETのテキストを比較し、その違いを教えてもらう方法はありますか?私。 "abc123efg"と "abc456efg"の違いは、インデックス3からインデックス5で始まる "123"と "456"です。.NET Frameworkのテキストを比較する
私はこれを行うためのコードを書くことができますが、 .NET Frameworkに存在する場合、私はそれを使用したいと思います。あるいは、それを行うオープンソースライブラリがある場合は、それも良い選択肢になります。
コードプロジェクトの"Generic, Reusable Diff Algorithm in C#"がお探しのものになる可能性があります。出典:this SO answer
私は実際には代わりにhttp://code.google.com/p/google-diff-match-patch/を使用して終了しましたが、あなたが参照したSOの回答のリンクが見つかりました。 – GiddyUpHorsey
あなたが探しているのは、文字列の「AND」操作のようなものです。これは良い記事です:http://www.codeproject.com/KB/recipes/DiffAlgorithmCS.aspx
あなたが探しているのは「差分」(「差分」の略)として知られています。そのようなものはFrameworkに組み込まれているものはありませんが、http://diffplex.codeplex.com/のような多くのオープンソースプロジェクトがあります。
は、私は、これはトリックを行うと思う:
string a = "abc123efg";
string b = "abc456efg";
var difference = ((from c in a
select c).Except(from t in b select t)).ToList();
string result = new string(difference.ToArray());
int startIndex = a.IndexOf(result);
int endIndex = (startIndex + result.Length)-1;
は、あなたが入力を定義しました。出力の必要性を定義する必要があります。 – Naor