//подсчёт типов коробок по высоте
ArrayList boxByHeight = new ArrayList();
int count = 0;
for (int i = 0; i < totalBox-1; i++)
{
if (boxes[i + 1].b_height == boxes.b_height)
{
count++;
}
else
{
boxByHeight.Add(count+1);
count = 0;
}
}
Массив структур (C#)
Прошу вашей подсказки. У меня есть массив структур (структура описывает габариты груза (длина, ширина, высота)), этот массив упорядочен по возрастанию высоты груза, мне необходимо записать в список (ArrayList boxByHeight) количество грузов с одинаковой высотой, т.е если например грузов с высотой 3 - 5 шт, а с высотой 5 - 4шт, то boxByHeight[0]=5, boxByHeight[1]=4. написал следующий код:
Код:
но проблема в том, что последний груз в список не добавляется, т.к. сразу после подсчёта количества, осуществляется выход из цикла, и boxByHeight.Add(count+1); - не выполняется. Как мне записать последний элемент в список:confused:
P.S. чёт голова не варит после праздников:D
Нужно добавить после цикла еще один вызов
boxByHeight.Add(count+1);
Цитата: P*t*
У тебя запись в boxByHeight происходит только в случае неравенства высоты. Если, например, все высоты одинаковы, то не запишется вообще ничего.
Нужно добавить после цикла еще один вызов
boxByHeight.Add(count+1);
Нужно добавить после цикла еще один вызов
boxByHeight.Add(count+1);
спасибо)
Цитата: Енот_в_Засаде
мне необходимо записать в список (ArrayList boxByHeight) количество грузов с одинаковой высотой
Код:
var sameHeights = boxes
.GroupBy(b => b.b_height)
.Select(g => new { Height = g.Key, Count = g.Count() })
.ToList();
.GroupBy(b => b.b_height)
.Select(g => new { Height = g.Key, Count = g.Count() })
.ToList();
Цитата: hardcase
Код:
var sameHeights = boxes
.GroupBy(b => b.b_height)
.Select(g => new { Height = g.Key, Count = g.Count() })
.ToList();
.GroupBy(b => b.b_height)
.Select(g => new { Height = g.Key, Count = g.Count() })
.ToList();
Спасибо:)
Цитата: Енот_в_Засаде
Спасибо:)
В принципе можно короче (я в браузере писал), все перегрузки LINQ в голове не удерживаю:
Код:
var sameHeights = boxes
.GroupBy(b => b.b_height, (height, boxes) => new { Height = height, Count = boxes.Count() })
.ToList();
.GroupBy(b => b.b_height, (height, boxes) => new { Height = height, Count = boxes.Count() })
.ToList();
Цитата: hardcase
В принципе можно короче (я в браузере писал), все перегрузки LINQ в голове не удерживаю:
Код:
var sameHeights = boxes
.GroupBy(b => b.b_height, (height, boxes) => new { Height = height, Count = boxes.Count() })
.ToList();
.GroupBy(b => b.b_height, (height, boxes) => new { Height = height, Count = boxes.Count() })
.ToList();
люди которым я в конечном итоге буду показывать программу, думают что чем больше кода - тем солиднее:D