我有一个列表,其中包含一个类的大约50个属性。我正在努力解决的问题是我试图计算两个属性的明显值。这个"计算"然后需要将数字添加到每个组列表的末尾。 例如:这是我的班级
public class ListType
{
public ListType()
{
}
public string ID { get; set; }
public string REGSID { get; set; }
public string county { get; set; }
public string act_loc { get; set; }
public string eviofnd { get; set; }
public string hmonth { get; set; }
public string hisnc { get; set; }
public string hinc { get; set; }
public string FIPS { get; set; }
public decimal back00 {get; set;}
public decimal ann00 { get; set; }
public int countDistinctID {get;set;}
}
我需要计算每个不同FIPS的不同IDS,然后将不同IDS的计数设置为每个分组FIPS的countDistinctID属性。 ID FIPS其他列(尽管仍需要此数据)
4 1 ......
5 2 ....
4 1 ....
4 2 ....
1 3 .....
1 2 ....
2 1 .....
我需要的是...... ID FIPS其他列数 4 1 ...... 2 3行,FIPS = 1,然后2个不同ID,每个FIP = 1
5 2 .... 3 3 rows w/FIPS=2 3 distinct IDS per FIps=2
4 1 .... 2
4 2 .... 3
1 3 ..... 1 1 row w/fips=3 1 distinct id perFIPS=3
1 2 .... 3
2 1 ..... 2
我已在文件中解析并将所有列写入名为List data的列表
在我计算了不同的ID之后我最终需要做的是设置计数值为原始"数据"的countDistinctID。列表并为每个不同的FIPS和每个不同的FIPS和ID执行此操作 census.countDistinctID
答案 0 :(得分:2)
试试这个
var distinct = censu.Select(a => a.Select(x=>x.ID).Distinct().Count());
答案 1 :(得分:1)
var censu = data.GroupBy(a => a.FIPS).ToList();
foreach (var grp in censu)
{
var count = grp.Select(p=>p.ID).Distinct().Count();
foreach (var d in grp)
d.countDistinctID = count;
}