Имеется список со значениями координат:
List<(int,int)> coord = new List<(int,int)>() {(554,79),(553,79),(554,79), (23,600),(22,600),(22,600)};
Необходимо сгруппировать диапазон по item1
554,553,554
и
23,22,22
Группировку делаю так:
List<(int,int)> g_coord = coord.OrderBy(x => x.Item1).ToList();
Как мне захватить в группировку рядом стоящие числа (554 и 553, 22 и 23) Т.е там где координата отличается всего на 1?
Пока сделал такой костыль:
List<(int, int)> coords = new List<(int, int)>() {
(553,126),
(554,126),
(554,127),
(553,126),
(41,126),
(40,126),
(45,120),
(44,120),
(46,120),
(553,127),
(1001,44),
(1002,45),
};
List<(int, int)> newcoords = new List<(int, int)>();
// Удалить дубликаты
coords = coords.GroupBy(x => x.Item1).Select(x => x.First()).ToList();
// перебор списка
for (var j = 0; j < coords.Count(); j++)
{
//Console.WriteLine(coords[j].Item1 + "x" + coords[j].Item2);
for (var i = 0; i < coords.Count(); i++)
{
// Console.WriteLine(coords[j].Item1+ "==" +coords[i].Item1);
if (Math.Abs(coords[j].Item1 - coords[i].Item1)==1) {
coords.RemoveAt(i);
}
}
newcoords.Add(coords[j]);
}
Как вариант:
пример кода
var integs = new[] { 501, 551, 523, 20, 40 };
var res = integs
.Select(x => new
{
Count = (int)Math.Log10(x) + 1,
Value = x
})
.Select(x => new
{
First = x.Value / (int)Math.Pow(10, x.Count - 1),
Count = x.Count,
Value = x.Value
})
.GroupBy(x => new { x.First, x.Count })
.ToArray();
Вывод:
{{5,3} => 501, 551, 523}
{{2,2} => 20}
{{4,2} => 40}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Нужно ли вообще корректировать верстку так, чтоб при масштабировании нигде ничего не выпирало и тд? Вот как выглядит отверстанная часть...
Есть ли разница в производительности между тегами? Например у меня (образно) 10000 слов данных, каждое слово нужно обернуть в тег Влияет ли выбор...
Как сделать кнопку навигации по сайту, или же чтоб кнопка переводила на опреденный элемент страницы?
Можно ли вставить DIV блок под исполняемый скрипт, если нет за что зацепиться в плане id или class?