c# linq groupby count distinct