检查数组中的重复字符串 [英] Checking for duplicate strings in an array

查看:68
本文介绍了检查数组中的重复字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此方法删除空条目,现在我需要检查重复项,但是我使用的是VS 2005的非常旧的版本,没有linq,所以我不能使用重复方法.你能帮忙的话,我会很高兴.谢谢!

Hi I am using this method to remove empty entries, now I need to check for duplicates but I am on a very old version of VS 2005 theres no linq I can''t use the duplicate method. Any help would be nice. Thank!

String[] hostName = htbclb.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);

推荐答案

您可以调整解决方案以使其适合您的需求!

一种可能的解决方案是使用以下代码段.
You can tweak the solution to make to suit your needs!

One possible solution is using the following snippet.
public static class ListExtensions
   {
       /// <summary>
       /// Add
       /// </summary>
       /// <typeparam name="T"></typeparam>
       /// <param name="List"></param>
       /// <param name="item"></param>
       /// <returns></returns>
       public static bool Add<T>(this List<T> List, T item)
       {
           bool isAdded = false;

           // if this is not a duplicate item
           if (!List.Contains(item))
           {
               // Add this item in the list
               List.Add(item);
               isAdded = true;
           }
           return isAdded;
       }

       /// <summary>
       /// ToStringEx
       /// </summary>
       /// <param name="StringArray"></param>
       /// <returns></returns>
       public static string ToStringEx(this string[] StringArray)
       {
           StringBuilder stringBuilder = new StringBuilder();
           foreach (string stringItem in StringArray)
           {
               stringBuilder.AppendFormat("{0},", stringItem);
           }
           return stringBuilder != null ? stringBuilder.ToString().TrimEnd (new char[] {','}) : string.Empty;
       }
   }

   public class Program
   {
       static void Main()
       {
           List<string> stringList = null;
           string longString = null;
           string[] stringArray = null;
           try
           {
               stringList = new List<string>();
               longString = "BOOK,COOK,BOOK,COOK,BOOK,LOOK,COOK,COOK,BOOK";
               stringArray = longString.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);

               // Enumerate over the stringArray
               foreach (string stringItem in stringArray)
               {
                   // Add this item in the list
                   stringList.Add<string>(stringItem);
               }

               // Converting List<string> to string[]
               stringArray = stringList.ToArray();

               // Converting string[] to comma delimited string
               longString = stringArray.ToStringEx();
           }
           catch (Exception ex)
           {
               Console.WriteLine(ex.StackTrace);
           }
           Console.ReadKey();
       }


或者,您可以通过扩展方法指定代码并使用内联-


Or you can stip the code from the extension methods and use inline -

static void Main()
       {
           List<string> stringList = null;
           string longString = null;
           string[] stringArray = null;
           StringBuilder stringBuilder = null;
           try
           {
               stringList = new List<string>();
               longString = "BOOK,COOK,BOOK,COOK,BOOK,LOOK,COOK,COOK,BOOK";
               stringArray = longString.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
               // Enumarate over the stringArray
               foreach (string stringItem in stringArray)
               {
                   // if this is not a duplicate item
                   if (!stringList.Contains(stringItem))
                   {
                       // Add this item in the list
                       stringList.Add(stringItem);
                   }
               }
               // Converting List<string> to string[]
               stringArray = stringList.ToArray();
               // Converting string[] to comma delimited string
               stringBuilder = new StringBuilder();
               foreach (string stringItem in stringArray)
               {
                   stringBuilder.AppendFormat("{0},", stringItem);
               }
               longString = stringBuilder.ToString();
           }
           catch (Exception ex)
           {
               Console.WriteLine(ex.StackTrace);
           }
           Console.ReadKey();
       }


问候,
ErSehmi


Regards,
ErSehmi


这篇关于检查数组中的重复字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆