C# GroupBy-获取TotalCount
我有这样的数据C# GroupBy-获取TotalCount,c#,group-by,C#,Group By,我有这样的数据 Column Count Base Percent 1 4 14 28.57142857 2 5 14 35.71428571 3 2 14 14.28571429 4 3 14 21.42857143 资料 尝试获取基本行(非空行总数)和百
Column Count Base Percent
1 4 14 28.57142857
2 5 14 35.71428571
3 2 14 14.28571429
4 3 14 21.42857143
资料
尝试获取基本行(非空行总数)和百分比列以及频率
到目前为止,我们已经实现了这一目标
Column Count
1 4
2 5
3 2
4 3
使用此代码
var result = data.GroupBy(x => x.Field<string>(xx), (row, l) => new Group { Column = row, Count = l.Count() })
台阶
var data = new int?[] { 1, 1, 2, 2, 2, 2, 2, null, 1, 1, 3, 3, 4, 4, 4, null, null };
var filteredData = data.Where(x => x != null);
var totalCount = filteredData.Count();
var groups = filteredData.GroupBy(x => x);
var result = groups.Select(x => new { Value = x.Key, Count = x.Count(), Percent = x.Count() * 100.0 / totalCount });
注意:组是分组项加上键的集合。关键是你选择的分组依据。在本例中,键是一个int。由于组是一个集合,您可以在其上执行类似于
.Count()
的操作。如果您发现答案对您有帮助,请接受答案。
var data = new int?[] { 1, 1, 2, 2, 2, 2, 2, null, 1, 1, 3, 3, 4, 4, 4, null, null };
var filteredData = data.Where(x => x != null);
var totalCount = filteredData.Count();
var groups = filteredData.GroupBy(x => x);
var result = groups.Select(x => new { Value = x.Key, Count = x.Count(), Percent = x.Count() * 100.0 / totalCount });