用于列表中唯一字符串的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

用于列表中唯一字符串的distinct()方法

我看到你只需要把不同的列表回到字符串?然后只需要下面的最后一行:

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
      }
    }