- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
for (int i = 0; i < count; i++) // перебираем список адресов
{
email = email_list[i].ToString();
for (int y = i + 1; y < count; y++) // перебираем тот же список но начиная со следующего элемента
{
if (email == email_list[y].ToString())
{
// если такой "y" уже есть в duble_index то пропускать
if (!duble_index.Contains(y))
duble_index.Add(y); // он дубликат - заносим его в "ЧЕРНЫЙ СПИСОК" =)
}
}
}
***************
System.Collections.ArrayList al = System.Collections.ArrayList.Adapter(duble_index);
al.Sort();
int z = 0;
int [] buff = new Int32[duble_index.Count];
foreach (Int32 s in al)
{
buff[z] = s;
z++;
}
for (int i = buff.Length-1; i >= 0; i--)
{
email_list.RemoveAt(buff[i]);
}
Удаление дубликатов в не отсортированном списке.... Это реально упростить?
guest 17.11.2009 14:57 # 0
AndrewKo 17.11.2009 15:00 # 0
guest 17.11.2009 16:24 # 0
guest 17.11.2009 15:41 # 0
AndrewKo 18.11.2009 14:17 # 0
guest 17.11.2009 16:08 # 0
List<string> exists = new List<string>()
for(int index = email_list.Count-1; index>=0 index++)
{
string email = email_list[index];
if (!exists .Contains(email))
{
duble_index.Add(email);
}
else
{
email_list.emoveAt(index);
}
}
guest 17.11.2009 16:08 # +1
List<string> exists = new List<string>()
for(int index = email_list.Count-1; index>=0 index++)
{
string email = email_list[index];
if (!exists .Contains(email))
{
exists .Add(email);
}
else
{
email_list.emoveAt(index);
}
}
AndrewKo 20.11.2009 15:07 # 0
Nagg 17.11.2009 17:27 # +2.2
email_list.Distinct();
Ztranger 17.11.2009 17:31 # 0
поддерживаю это решение. Но если пишут на 2.0, 3.0 или Compact?
Nagg 17.11.2009 17:34 # 0
public static IList<T> Distinct<T>(this IList<T> sourceList)
{
List<T> result = new List<T>(sourceList.Count);
foreach (var item in sourceList)
if (!result.Contains(item))
result.Add(item); // yield return
return result;
}
Nagg 17.11.2009 18:43 # 0
Ztranger 17.11.2009 19:19 # 0
Ибо про расширяющие методы в NetFramework 2.0 ты загнул )
Nagg 17.11.2009 19:24 # 0
sven47 18.11.2009 00:34 # 0
string str;
str.Foo();
заменяются на Foo(str);
Проверено Решарпером ;)
Nagg 18.11.2009 00:38 # 0
Oleg_quadro 18.11.2009 13:10 # 0
AndrewKo 18.11.2009 14:23 # 0
AndrewKo 18.11.2009 14:23 # 0
gvsmirnov 18.11.2009 17:08 # +2
Amok 18.11.2009 20:13 # 0
AndrewKo 20.11.2009 14:44 # 0
результаты:
Извлечено е-mail - 306247
найдено дубликатов - 9306
Выполнено за - 17 мин 57 сек
Интересно другие предложенные способы работают быстрее?
guest 21.11.2009 23:32 # 0
buff_email - отменный стиль именования :) И что это? List<>? Т.е. поиск перебором? Сильный ход.