Товарищи, есть DataTable в нем есть столбец Article.
Как записать в массив(или куда лучше будет) количество встречающихся записей.
Например есть 5 записей
Мне надо чтобы он записал что
228 - 2 раза
105 - 2
100 - 1
Как и куда лучше записать?
знаю как в переменную записать по конкретному критерию, а надо чтобы он выписал что встретилось и сколько.
FaceOutCount = dt.AsEnumerable().Where(x => x["ФИО подозреваемого"].ToString() == "н/л").ToList().Count;
Мне потом надо будет переписать это в Word (но это я сам)
Надеюсь доходчиво написал, на словах проще звучит ))
Помогите)
Если я правильно уловил суть задания, то без лишних заморочек вот код
public static DataTable GetTable()
{
// Here we create a DataTable with four columns.
DataTable table = new DataTable();
table.Columns.Add("id", typeof(int));
table.Columns.Add("numOfArticle", typeof(int));
table.Rows.Add(1, 228);
table.Rows.Add(2, 105);
table.Rows.Add(3, 228);
table.Rows.Add(4, 100);
table.Rows.Add(5, 105);
return table;
}
static void Main(string[] args)
{
DataTable dt = GetTable();
Dictionary<int, int> dictStats = new Dictionary<int, int>();
foreach (DataRow row in dt.Rows)
{
if (!dictStats.ContainsKey(row.Field<int>(1)))
dictStats.Add(row.Field<int>(1), 1);
else
dictStats[row.Field<int>(1)]++;
}
Console.WriteLine("Press any key...");
Console.ReadKey();
}
Здесь цикл по строкам, но, очевидно, аналогично будет, если организовать по столбцам.
//Для теста.
var list = new List<int> {228, 105, 228, 100, 105};
//Основной код (группируем итемы по определенному значению,
//создаем новое отображение, где в анонимные типы вносим кол-во элементов в группе
//и сам элемент).
var count = list.GroupBy(g => g)
.Select(s => new {Id = s.Key, Count = s.Count()});
//Выводим результат (пример того, как обращаться).
foreach (var item in count)
Console.WriteLine($"Число: {item.Id} | Кол-во: {item.Count}");
Вывод:
Число: 228 | Кол-во: 2
Число: 105 | Кол-во: 2
Число: 100 | Кол-во: 1
//Колво статей
int[] countArticle = new int[dt.Rows.Count];
string[] nameArticle = new string[dt.Rows.Count];
for (int i = 0;i < dt.Rows.Count; i++)
{
nameArticle[i] = dgvArchive.Rows[i].Cells[2].Value.ToString();
countArticle[i] = 0;
for(int j = 0; j < dt.Rows.Count; j++)
{
if (nameArticle[i] == dgvArchive.Rows[j].Cells[2].Value.ToString())
{
countArticle[i]++;
}
}
}
//Удаляем одинаковые записи
string n = "";
for (int i = 0; i < nameArticle.Length; i++)
{
n = nameArticle[i];
for (int j = 0; j < nameArticle.Length; j++)
{
if (n == nameArticle[j] && j != i)
{
nameArticle = DeleteElementFromMassString(nameArticle.ToList(), j);
countArticle = DeleteElementFromMassInt(countArticle.ToList(), j);
}
}
}
public string[] DeleteElementFromMassString(List<string> array, int indexToDelete)
{
array.RemoveAt(indexToDelete);
return array.ToArray();
}
public int[] DeleteElementFromMassInt(List<int> array, int indexToDelete)
{
array.RemoveAt(indexToDelete);
return array.ToArray();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Создал UserControl и пытаюсь загрузить его на главное окноВ главном окне есть StackPanel и Grid, но куда бы я не пытался добавить UC - одна и та же ошибка...
У меня простая windows formДве кнопки: одна шифрует файл любым способом, сохраняет файл и в конце расширения дописывает