![](/zhyk/misc/sp.gif) |
Дубликаты в list - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
11.12.2011, 15:25
|
#1
|
|
|
|
Сержант
|
![](/zhyk/misc/regist.png) Регистрация: 20.12.2010
![](/zhyk/misc/messages.png) Сообщений: 102
![](/zhyk/misc/reput.png) Популярность: 427
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 1
Поблагодарили 93 раз(а) в 60 сообщениях
|
Дубликаты в list
Есть отсортированный list
подобного содержания:
205436-1150.3284-687.0675-304-23-295
205437-1309.3699-1163.5947-53-23-295
205437-1309.3903-1163.6443-55-23-295
205437-324.38602-426.34479-331-23-295
206179-1132.05-846.85999-322-23-295
212283-1025.0581-611.58704-255-23-295
212283-1069.8805-662.39661-270-23-295
212283-1110.3353-487.45929-270-23-295
Задача посчитать одинаковые значения(205437 - 3 штуки), и т.д.
________________
79099c42081131387cabf8f236676a5a
Последний раз редактировалось pixfid; 11.12.2011 в 15:38.
|
|
|
11.12.2011, 20:22
|
#2
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 14.07.2011
![](/zhyk/misc/messages.png) Сообщений: 27
![](/zhyk/misc/reput.png) Популярность: 244
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
|
Re: Дубликаты в list
Было неоднократно.
Как вариант:
Код:
List<string> lines = new List<string>
{
"205436-1150.3284-687.0675-304-23-295"
" 205437-1309.3699-1163.5947-53-23-295"
"205437-1309.3903-1163.6443-55-23-295"
" 205437-324.38602-426.34479-331-23-295"
"206179-1132.05-846.85999-322-23-295"
" 212283-1025.0581-611.58704-255-23-295"
"212283-1069.8805-662.39661-270-23-295"
" 212283-1110.3353-487.45929-270-23-295"
};
foreach(string line in lines)
{
var tmp = from item in lines
where item == line
select(item);
if(tmp.Length>1)
MessageBox.Show(string.Format("line\"{0}\" is repeated {1} times", line, tmp.Length));
}
Но это некрасиво, если учесть что в временную переменную tmp мы несколько раз подряд записываем (о ужас) юникодовую строку...
Если обрабатывать порядка хотя бы тысяч ста объектов - операция сильно затянется.
Можно вместо select(item) ввести переменную (условно) counter равную нулю, и в селекте ее плюсовать на еденицу.
Можно узать функцию Count() списка, и это куда более разумный вариант, но надо создавать делегат, проверяющий равенство, а это несколько лишних строк, за которые лично меня бы моя лень задушила б..
p.s. можно (в 4м нете)узать from item in lines.AsParallel() при обработки очень больших объемах данных
UPD1:
Так бы и писал, что от дублей почистить надо.
По сабжу-то вроде надо их посчитать
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой
Последний раз редактировалось •theSaboteur•; 12.12.2011 в 14:29.
Причина: update
|
|
|
12.12.2011, 10:26
|
#3
|
|
|
|
Сержант
|
![](/zhyk/misc/regist.png) Регистрация: 20.12.2010
![](/zhyk/misc/messages.png) Сообщений: 102
![](/zhyk/misc/reput.png) Популярность: 427
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 1
Поблагодарили 93 раз(а) в 60 сообщениях
|
Re: Дубликаты в list
Спасибо, но уже решил проблемку, разбил на 2 прохода, препарс с выдиранием только id 205436, проверка на дубликаты и удаление, и основной парсинг файла уже по списку оставшемуся.
Код:
static List<string> removeDuplicates(List<string> inputList)
{
List<string> finalList = new List<string>();
foreach (string currValue in inputList)
{
if (!finalList.Contains(currValue))
{
finalList.Add(currValue);
}
}
return finalList;
}
удаление дубликатов, мб пригодится
________________
79099c42081131387cabf8f236676a5a
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Информация] Server LIST
|
"Unix |
Общение и обсуждение Perfect World |
5 |
04.12.2011 22:25 |
[Помогите!] Дубликаты при Бруте
|
Scarlet67 |
Общение и обсуждение, архив Lineage 2 |
6 |
28.10.2010 12:57 |
[Помогите!] Network list
|
JonyB |
Вопросы и ответы, обсуждения |
0 |
27.03.2010 12:26 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 04:32.
|
![](/zhyk/misc/sp.gif) |