0 c#
我有一个配有大量句子的文件.我需要用该文件中的单词创建一个字典.到目前为止,我已经将单词分开并使用Split()和Sort()方法对它们进行排序.我的问题是制作一个没有重复单词的列表.我怎样才能做到这一点?
static int n = 0;
public static string[] NoDuplicate(string[] array)
{
int i;
string[] res = (string[])array.Clone();
for (i = 0; i < array.Length-1; i++)
{
if (array[i + 1] != array[i])
res[n++] = (string)array[i];
}
return res;
}
Run Code Online (Sandbox Code Playgroud)
你也可以在LINQ 的功能旁边使用HashSet.Distinct()
:
HashSet: 这是一个优化的集合集合.它有助于消除数组中的重复字符串或元素.它是一个散列其内容的集合.
public static string[] NoDuplicate(string[] array)
{
string[] result = new HashSet<string>(array).ToArray();
return result;
}
Run Code Online (Sandbox Code Playgroud)
如果要消除不区分大小写的副本,可以传递这样的IEqualityComparer
参数:
使用HashSet
:
public static string[] NoDuplicate(string[] array)
{
string[] result = new HashSet<string>(array, StringComparer.OrdinalIgnoreCase)
.ToArray();
return result;
}
Run Code Online (Sandbox Code Playgroud)
使用LINQ的Distict
功能:
public static string[] NoDuplicate(string[] array)
{
string[] result = array.Distinct(StringComparer.OrdinalIgnoreCase)
.ToArray();
return result;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
试试这个:
private static string[] NoDuplicate(string[] inputArray)
{
var result = inputArray.Distinct().ToArray();
return result;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
182 次 |
最近记录: |