Граница + -0,05 немного неясна:
Для набора, подобного: {0,01, 0,02, 0,03, 0,04, 0,05, 0,06, 0,07, 0,08, 0,09, 0,1}
Каждыйзначение равно 0,01 для следующего, но все они находятся в диапазоне [+ -0,05] от 0,05.
Но 0,01 и 0,06 слишком далеко друг от друга.
Но можно округлить до 2-го знака после запятой.
examples.GroupBy(x => Math.Round( x.Position,2))
Как bleep-bloop прокомментировал:
если вы хотите сгруппировать по наборам 0,05, вы можете сделать x => Math.Round(x.Position / 0.05)
MCVE:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public void Main()
{
var examples = new List<Example>();
var rnd = new Random();
for (int i = 0; i < 100; i++)
{
var newPosition = rnd.NextDouble();
examples.Add(new Example { Position = newPosition });
}
examples.GroupBy(x => Math.Round( x.Position,2)).Dump();
examples.GroupBy(x => x => Math.Round(x.Position / 0.05)).Dump();
}
public class Example
{
public double Position { get; set; }
}
}
Живой пример: https://dotnetfiddle.net/LDNBgu