Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2016, 12:11   #1
LENA_M
Пользователь
 
Регистрация: 24.04.2009
Сообщений: 98
По умолчанию Подсчитать количество уникальных значений

Добрый день,
у меня вопрос. Я загружаю таблицу с данными из текстового файла и мне нужно подсчитать количество всех строк в таблице и количество уникальных значений в столбце id_name.
Т.Е вот у меня столбец id_name: 2; 51; 2; 4; 4; 51

Считаю количество всех строк:
Код:
textBox1.Text = dataGridView1.RowCount.ToString();
На выводе получаю 6.

А как подсчитать число уникальных значений в в столбце id_name и вывести в textBox1? Т.Е что бы на выходе было число 3. Я думаю, написать 2 цыкла, но может есть более простой вариант?

Спасибо
LENA_M вне форума Ответить с цитированием
Старый 13.03.2016, 12:27   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что за файл? Как читаете из него?
Непонятно причем тут dataGridView.

Можно например записать все значения столбца например в List, а потом удалить повторяющиеся с помощью Distinct https://msdn.microsoft.com/en-us/lib...=vs.90%29.aspx
Код:
            var list = new List<int>();

            list.Add(1);
            list.Add(1);
            list.Add(2);
            list.Add(3);
            list.Add(2);

            list = list.Distinct().ToList();

            Console.WriteLine(list.Count);
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.03.2016, 12:35   #3
LENA_M
Пользователь
 
Регистрация: 24.04.2009
Сообщений: 98
По умолчанию

Alex11223, у меня файл csv, этот файл содержит примерно 100 000 строк, т.е он достаточно большой. Вот я его читаю:

Код:
public Form1()
        {
            InitializeComponent();
           
        }
        /// <summary>
        /// Load CSV file into DataTable
        /// </summary>
        public DataTable ReadCSV(string filePath)
       {
           var dt = new DataTable();
File.ReadLines(filePath).Take(1)
           .SelectMany(x => x.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries))
           .ToList()
           .ForEach(x => dt.Columns.Add(x.Trim()));

           // Adding the rows
           File.ReadLines(filePath).Skip(1)
          .Select(x => x.Split(';'))
          .ToList()
         .ForEach(line => dt.Rows.Add(line));
         return dt;
      }

      private void btnOpen_Click(object sender, EventArgs e)
        {
            try
            {
                using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "CSV|*.csv", ValidateNames = true, Multiselect = false })
                {
                    if (ofd.ShowDialog() == DialogResult.OK)
                        dataGridView1.DataSource = ReadCSV(ofd.FileName);
                }

            }
            catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
        }
private void textBox1_TextChanged(object sender, EventArgs e)
      {
          textBox1.Text = dataGridView1.RowCount.ToString();
      }
Попробовала посчитать вот так, но не это не работает
Код:
private static int GetUniqueRowsCount(DataGridView view, string columnName)
      {
          int columnIndex = view.Columns["id_name"].Index;
          var hs = new HashSet<string>();
          foreach (DataGridViewRow row in view.Rows)
          {
              hs.Add(row.Cells[columnIndex].Value.ToString());
          }
         return hs.Count;
      }

Последний раз редактировалось LENA_M; 13.03.2016 в 12:39.
LENA_M вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из столбца подсчитать кол-во повторяющихся уникальных значений pasha2189 Microsoft Office Excel 3 04.05.2013 02:39
выбор уникальных значений олег69 Microsoft Office Excel 7 10.03.2011 14:15
Подсчитать количество уникальных значений getikalex Microsoft Office Excel 6 08.09.2010 10:50
Как подсчитать количество уникальных мест? Iskin Microsoft Office Excel 2 05.12.2008 11:44
Выборка уникальных значений Mary_star SQL, базы данных 9 11.02.2008 22:46