CSharpDiff 0.0.7

dotnet add package CSharpDiff --version 0.0.7
NuGet\Install-Package CSharpDiff -Version 0.0.7
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CSharpDiff" Version="0.0.7" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CSharpDiff --version 0.0.7
#r "nuget: CSharpDiff, 0.0.7"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install CSharpDiff as a Cake Addin
#addin nuget:?package=CSharpDiff&version=0.0.7

// Install CSharpDiff as a Cake Tool
#tool nuget:?package=CSharpDiff&version=0.0.7

Quality Gate Status Coverage NuGet MIT licensed GitHub contributors


C# Diff with Unified Diff Support, this codebase is a port from the popular JS library jsdiff by kpdecker.


  • Clean-up code (Code smells and bugs according to Sonar)
  • Patch
    • Create
    • Apply
    • Merge
    • Parse
  • Diff
    • Array
    • Base Diff()
    • Character Diff()
    • CSS
    • JSON
    • Line DiffLines()
    • Sentence DiffSentence()
    • Word (Partial, issues with Regex in DiffWord.Tokenize)
  • Convert DiffConvert
    • XML DiffConvert.ToXml
    • DMP (diff-match-patch) DiffConvert.ToDmp

Usage Example


using CSharpDiff.Diff;

var diff = new Diff(new DiffOptions
    IgnoreCase = true
var result = diff.diff("New Value.", "New value.");
using CSharpDiff.Diff;

var text1 = "Here im.\nRock you like old man.\nYeah";
var text2 = "Here im.\nRock you like hurricane.\nYeah";

var diff = new DiffLines();
var difference = diff.diff(text1, text2);
using CSharpDiff.Diff;

var text1 = "Here im. Rock you like old man.";
var text2 = "Here im. Rock you like hurricane.";

var diff = new DiffSentence();
var difference = diff.diff(text1, text2);


using CSharpDiff.Patch;

var text1 = "...";
var text2 = "...";

var ps = new Patch();
string patch = ps.create("filename1", "filename2", text1, text2, "header1", "header2", new PatchOptions());

Works Well With


Idk, just make a pull request.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.7 21,821 8/22/2022
0.0.6 385 8/22/2022
0.0.5 368 8/22/2022
0.0.4 346 8/21/2022
0.0.3 350 8/21/2022
0.0.2 350 8/21/2022
0.0.1 362 8/21/2022