Use String.Split()to determine your group key:
var groups = myList.GroupBy(x => { var parts = x.Split('.');
return parts[0] + parts[1]; });
This will work regardless of the length of both parts of the key (before and after the point).
:
, , , . :
var groups = myList.GroupBy(x =>
{
var parts = x.Split('.'));
int num = 0;
return parts[0] + parts.Where(p => p.All(char.IsDigit)
.First( p => int.TryParse(p, out num));
}
);