C# 从数组中删除重复的字符
本文关键字:字符 删除 数组 | 更新日期: 2023-09-27 17:56:08
static string RemoveDuplicateChars(string key)
{
// --- Removes duplicate chars using string concats. ---
// Store encountered letters in this string.
string table = "";
// Store the result in this string.
string result = "";
// Loop over each character.
foreach (char value in key)
{
// See if character is in the table.
if (table.IndexOf(value) == -1)
{
// Append to the table and the result.
table += value;
result += value;
}
}
return result;
}
上面的代码片段来自 http://www.dotnetperls.com/duplicate-chars。 我的问题是,当您可以使用table
时,为什么还需要额外的result
变量? 这两个变量都有原因吗? 我相信,下面是我编写的代码,它实现了相同的目的。 我错过了什么吗? 再次感谢,期待在这里做出贡献!
代码重写:
static string RemoveDuplicateChars(string key)
{
// --- Removes duplicate chars using string concats. ---
// Store encountered letters in this string.
string table = "";
// Loop over each character.
foreach (char value in key)
{
// See if character is in the table.
if (table.IndexOf(value) == -1)
{
// Append to the table and the result.
table += value;
}
}
return table;
}
你所做的没有错。这应该可以正常工作。话虽如此,在 C# 中我们也有 linq。你可以拿一个char[]
然后做:
char[] result = inputCharArray.Distinct().ToArray();
您的代码正确且功能完美,您也可以使用 C# 中的 LINQ 使用
stringName.Distinct()
dotnetperls 使用两个变量的原因是因为它是一个介绍,并尝试尽可能直接地遵循逻辑以促进学习。抓得好!
这不是真正必要的,因为两种方式都可以正常工作。选择完全取决于开发人员。