用于列表中唯一字符串的distinct()方法
本文关键字:distinct 方法 字符串 列表 唯一 用于 | 更新日期: 2023-09-27 18:15:22
我有一个关于c#中distinct()方法的问题。我有一个字符串列表。
List <string> stringtxt = stringtxt.distinct().ToList();
例如,我的stringtxt列表中的字符串是:
"A"
"B"
"C"
"B"
"E"
我怎么能实现这一点,我只得到输出"A"B"C"E"。不使用接口"等价"或任何HashCodes。我使用foreach循环来解决这个问题。
foreach(var stringitem in stringtxt)
{
tb.text = stringitem;
}
但我不确定这是否是解决这个问题的最好方法。
从下面的评论:
我很抱歉,我试图问的问题可以理解:D再次这是我的代码:
List<string> stringvalues = new List<string>();
stringvalues.Add("A");
stringvalues.Add("ccc");
stingvalues.Add("B");
stingvalues.Add("B");
stingvalues.Add("E");
stringvalues.Add("hello");
List<string> stringtxt = stringvalues.Distinct().ToList();
//Output
A,ccc,B,E,hello
我看到你只需要把不同的列表回到字符串?然后只需要下面的最后一行:
List<string> stringtxt = new List<string>()
{
"A",
"B",
"C",
"B",
"E"
};
stringtxt = stringtxt .Distinct().ToList(); // avoid redeclaring stringtxt as List<string>
// combine the stringlist into a string with , separator
string output = string.Join(",", distinctStringList );
创建一个hashtable
,用foreach
遍历所有字符串并尝试添加它。如果失败,则忽略该错误。最后,打印哈希表中的所有元素。
例如:
Hashtable hash= new Hashtable();
foreach (var s in your_list)
{
try
{
hash.Add(s, s);
}
catch
{
// will happen if exists
}
}