У меня есть arraylist «Templist» после некоторого момента времени, когда я увидел, что в arraylist добавлено много повторяющихся значений, поэтому я решил удалить дубликаты. Когда я нашел googled, я нашел некоторые решения, но большинство из них сбивают с толку. В некоторых случаях, когда он говорит сортировать арралиста и находить и удалять дубликаты, где говорится, чтобы использовать разные, где-то говорящие использовать хеш-лист. В любом случае я не хочу заменять Arraylist некоторыми другими структурами. Может ли кто-нибудь предоставить мне логику, чтобы предотвратить дублирование от арраиста?Удаление дубликатов записей от arralist
Код, который в настоящее время я имею в
public class Templist : ArrayList
{
//some logic behind arraylist
} Templist items = new Templist();
if (!(obj is Testobject) && !(obj is Leafobject))
{
items.Add(obj);
}
if (items.Count > 0)
{
SSendObjectCollection(items);
}
static public void SendObjectCollection(Templist col)
{
try
{
col.Sort();
}
catch(System.Exception exception)
{
}
}
UPDATE
я сделал этот код
public static string[] RemoveDuplicates(string[] s)
{
HashSet<string> set = new HashSet<string>(s);
string[] result = new string[set.Count];
set.CopyTo(result);
return result;
}
Тогда я назвал в exisitng функции SendObjectCollection() как RemoveDuplicates(col);
но он бросает ошибки, может ли любое тело направлять меня, что такое g здесь неправильно?
Несколько вопросов: Вы работали из *, где * дубликатами приходят? Вы не дали нам никакого контекста. Почему вы используете 'ArrayList' в первую очередь? (Общие коллекции почти всегда предпочтительны.) Почему вы * выписываете * из 'ArrayList'? (Получение собственной коллекции из существующих - это почти всегда плохая идея.) –
@Jon Skeet duplicate получает метод SendObjectCollection, этот arralist настроен arralist, я изменю вопрос – vettori
Пожалуйста, прочитайте http://tinyurl.com/so -list, когда вы это делаете –