簡體   English   中英

用於列表C#中唯一字符串的distinct()方法

[英]distinct() method for unique strings in a list C#

我對C#中的方法distinct()有疑問。 我有一個字符串列表。

List <string> stringtxt = stringtxt.distinct().ToList();

例如,我的s​​tringtxt列表中的字符串為:

"A"
"B"
"C"
"B"
"E"

我如何實現這一點,即我只能得到輸出“ A”,“ B”,“ C”,“ E”。 不使用接口“ IEquatable”或任何HashCode。 我用一個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
      }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM