using System.Collections.Generic;
public static List<StringsToCompare> populateTestData()
var ListStrings = new List<StringsToCompare>();
ListStrings.Add(new StringsToCompare(1, "TysonBaker", "TysonBaker"));
ListStrings.Add(new StringsToCompare(1, "TTysonTBaker", "TysonBaker"));
ListStrings.Add(new StringsToCompare(1, "BakerTyson", "TysonBaker"));
ListStrings.Add(new StringsToCompare(1, "TysonBaker-OtherName", "TysonBaker"));
ListStrings.Add(new StringsToCompare(1, "TysonBaker JR", "TysonBaker"));
public static void Main()
var test = populateTestData();
var result = new List<int>();
foreach (var item in test)
var distance = Levenshtein(item.String1, item.String2);
Console.WriteLine($"FirstCompare: {item.String1} distance: {distance}");
Console.WriteLine($"count greater than 3: {result.Count}");
public class StringsToCompare
public StringsToCompare(int id, string string1, string string2)
public int Id {get; set; }
public string String1 {get; set;}
public string String2 {get; set;}
private static int Levenshtein(string s, string t)
int[,] d = new int[n + 1, m + 1];
for (int i = 0; i <= n; d[i, 0] = i++)
for (int j = 0; j <= m; d[0, j] = j++)
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
int cost = (t[j - 1] == s[i - 1]) ? 0 : 1;
Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1),