Soenneker.Utils.Strings.DiceCoefficient
4.0.604
Prefix Reserved
dotnet add package Soenneker.Utils.Strings.DiceCoefficient --version 4.0.604
NuGet\Install-Package Soenneker.Utils.Strings.DiceCoefficient -Version 4.0.604
<PackageReference Include="Soenneker.Utils.Strings.DiceCoefficient" Version="4.0.604" />
<PackageVersion Include="Soenneker.Utils.Strings.DiceCoefficient" Version="4.0.604" />
<PackageReference Include="Soenneker.Utils.Strings.DiceCoefficient" />
paket add Soenneker.Utils.Strings.DiceCoefficient --version 4.0.604
#r "nuget: Soenneker.Utils.Strings.DiceCoefficient, 4.0.604"
#:package Soenneker.Utils.Strings.DiceCoefficient@4.0.604
#addin nuget:?package=Soenneker.Utils.Strings.DiceCoefficient&version=4.0.604
#tool nuget:?package=Soenneker.Utils.Strings.DiceCoefficient&version=4.0.604
Soenneker.Utils.Strings.DiceCoefficient
Sørensen–Dice string similarity using overlapping character bigrams.
Installation
dotnet add package Soenneker.Utils.Strings.DiceCoefficient
Usage
using Soenneker.Utils.Strings.DiceCoefficient;
var text1 = "This is a test";
var text2 = "This is another test";
double score = DiceCoefficientStringUtil.Calculate(text1, text2);
double percentage = DiceCoefficientStringUtil.CalculatePercentage(text1, text2);
// score == 0.75
// percentage == 75
For each input, the utility creates overlapping two-character sequences and compares them as a multiset. Repeated bigrams therefore count up to the number present in both inputs. The coefficient is:
2 × shared bigram count / total bigram count across both inputs
Calculate returns a value from 0 to 1; CalculatePercentage multiplies it by 100.
Comparison rules
- Comparison is case-sensitive.
- Bigrams consist of adjacent UTF-16 code units.
- Whitespace and punctuation participate like any other character.
- Order inside each bigram matters, while the order of the resulting bigram collection does not.
- Two empty strings return
1; one empty input returns0. - Inputs shorter than two characters return
1only when they are exactly equal, otherwise0.
Call the static methods directly; no dependency-injection registration is required. Normalize casing, whitespace, punctuation, or Unicode representation before calling if your application needs those equivalences.
The implementation allocates a frequency dictionary for the shorter input and scans the longer input once, making it suitable for ordinary fuzzy matching and duplicate-candidate ranking. It is lexical comparison, not semantic similarity.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Soenneker.Extensions.String (>= 4.0.770)
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 |
|---|---|---|
| 4.0.604 | 65 | 9/30/2026 |
| 4.0.603 | 115 | 9/25/2026 |
| 4.0.602 | 86 | 9/25/2026 |
| 4.0.601 | 94 | 9/24/2026 |
| 4.0.600 | 90 | 9/24/2026 |
| 4.0.599 | 115 | 9/16/2026 |
| 4.0.598 | 89 | 9/16/2026 |
| 4.0.597 | 96 | 9/16/2026 |
| 4.0.596 | 103 | 9/15/2026 |
| 4.0.595 | 92 | 9/13/2026 |
| 4.0.594 | 102 | 9/13/2026 |
| 4.0.593 | 97 | 9/13/2026 |
| 4.0.592 | 100 | 9/13/2026 |
| 4.0.591 | 106 | 9/12/2026 |
| 4.0.587 | 104 | 9/9/2026 |
| 4.0.586 | 100 | 9/8/2026 |
| 4.0.585 | 109 | 9/8/2026 |
| 4.0.584 | 102 | 9/7/2026 |
| 4.0.583 | 105 | 9/7/2026 |
| 4.0.582 | 104 | 9/7/2026 |
Updated Soenneker.Extensions.String to 4.0.770