На PHP есть, но на C# самим придётся перекладывать:
function GetUniqueStrings($a=array()){
if(is_array($a)) {
$out = array();
foreach($a as $k=>$str){
$str = strip_tags(htmlspecialchars(trim($str)));
$str = str_replace(' ', ' ', $str);
$str = mb_strtolower($str, mb_detect_encoding($str));//не учитываем регистр
$arr = explode(' ', $str);
$out[$k] = array_reduce($arr, function($sum, $cur){
$sum += sprintf("%u", crc32($cur));
return $sum;
});
}
return array_intersect_key($a, array_unique($out));
}
}
$MyArray = [
'автоматический выключатель KDJF39484',
'выключатель автоматический KDJF39484',
'KDJF39484 автоматический выключатель'
];
print_r(GetUniqueStrings($MyArray));
Дефисы можно заменить на пробелы. В случае опечаток типа 4ВГОСТ действительно что-то типа Левенштейна нужно.