ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
C# поиск текста в listView |

12.12.2009, 05:09
|
|
Познающий
Регистрация: 12.11.2008
Сообщений: 33
Провел на форуме: 67053
Репутация:
15
|
|
C# поиск текста в listView
Задача, не загонять в список listView1 элементы, которые уже там есть. Выложил весь кусок, возможно вы подскажете как можно упросить код.
all - arrayList со всеми элементами.
Код:
//Подсчет одинаковых символов
int alls = 0;
for (int i = 0; i < all.Count; i++)
{
k = 0;
for (int s = 0; s < all.Count; s++)
{
if (all[i].ToString() == all[s].ToString())
{
k = (k + 1);
}
}
//Если символ повторяется мы его не заносим в таблицу (но этот код ищет по всей таблице, а мне нужно только по 1му столбику)
if(listView1.FindItemWithText(all[i].ToString()) == null)
{
alls++;
lv[0] = all[i].ToString();
lv[1] = k.ToString();
double proc = Math.Round(k * 100 / (double)all.Count, 2);
lv[2] = proc.ToString();
toolStripStatusLabel4.Text = alls.ToString();
listView1.Items.Add(new ListViewItem(lv, 1));
}
}
Последний раз редактировалось WAYS; 12.12.2009 в 05:11..
|
|
|

12.12.2009, 10:46
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
FW 3.5
LINQ
if (listView1.Items.OfType<ListViewItem>().Where(a => a.SubItems[1].Text != Тут текст).Count() > 0)
{
return;
}
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

12.12.2009, 17:03
|
|
Познающий
Регистрация: 12.11.2008
Сообщений: 33
Провел на форуме: 67053
Репутация:
15
|
|
ты наверное не понял что мне нужно.
Я записал твою функцию так
Код:
if (listView1.Items.OfType<ListViewItem>().Where(a => a.SubItems[1].Text != all[i].ToString()).Count() == 0)
Результат:

|
|
|

12.12.2009, 17:18
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
Сообщение от WAYS
ты наверное не понял что мне нужно.
Я записал твою функцию так
Код:
if (listView1.Items.OfType<ListViewItem>().Where(a => a.SubItems[1].Text != all[i].ToString()).Count() == 0)
Результат:

textBox1.Text.Distinct().ToList().ForEach(a => MessageBox.Show(a + "|" + textBox1.Text.Count(b => a == b).ToString()));
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

12.12.2009, 19:49
|
Регистрация: 29.05.2002
Сообщений: 1,793
Провел на форуме: 2050916
Репутация:
0
|
|
Сообщение от WAYS
if(listView1.FindItemWithText(all[i].ToString()) == null)....
Какая жуть ....
WAYS, ты слышал про абстрактные типы данных? Dictionary например ?
Я конечно понимаю, что у тебя это первая-вторая программа в жизни, но нельзя же писать такой "код", нельзя никогда...
|
|
|

14.12.2009, 02:15
|
|
Познающий
Регистрация: 12.11.2008
Сообщений: 33
Провел на форуме: 67053
Репутация:
15
|
|
Сообщение от W!z@rD
textBox1.Text.Distinct().ToList().ForEach(a => MessageBox.Show(a + "|" + textBox1.Text.Count(b => a == b).ToString()));
Честно говоря это гениально, я могу удалить почти весь этот код программы. Осталось только понять, как мне в этом методе задать несколько параметров. В данном способе можно только 1 
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|