Me gustaría obtener el género para los cálculos, por ejemplo, las opciones masculina y femenina están en una columna. Me gustaría obtener todos los hombres o todas las mujeres para el cálculo.
Tengo una "propiedad calculada" que me da una lista de todos los elementos junto con el cálculo. Aquí está el código:
partial void MeanFemale_Compute(ref string result) { // Set result to the desired field value int totalAge = 0; int count = 0; foreach (InsuranceQuotation i in his.DataWorkspace.ApplicationData.InsuranceQuotations) { totalAge += i.mAge; count++; } if (count != 0) { result = (totalAge / count).ToString(); } }¿Cómo puedo filtrar el género en esta "propiedad calculada"?
Puede utilizar LINQ. Se vería algo como esto:
int averageAge = this.DataWorkspace.ApplicationData.InsuranceQuotations. Where(iq => iq.Gender == Gender.Female). Average(iq => iq.mAge);¿Podrías filtrar con una declaración if?
partial void MeanFemale_Compute(ref string result) { // Set result to the desired field value int totalAge = 0; int count = 0; foreach (InsuranceQuotation i in this.DataWorkspace.ApplicationData.InsuranceQuotations) { if(i.Female == true) { totalAge += i.mAge; count++; } } if (count != 0) { result = (totalAge / count).ToString(); } }Espero que esto ayude a alguien más a filtrar la lista de opciones en _InitializeDataWorkspace:
// get count of females double fgender = (from gender in InsuranceQuotations where gender.mGender == "Female" select gender).Count(); //get sum of females ages double female = InsuranceQuotations.Where(x => x.mGender == "Female").Sum(t => t.mAge); // get count males double mgender = (from gender in InsuranceQuotations where gender.mGender == "Male" select gender).Count(); //get sum of males ages double male = InsuranceQuotations.Where(x => x.mGender == "Male").Sum(t => t.mAge); // MeanFmale amd MeanMmale - The fields that display MeanFmale = (female / fgender).ToString(); MeanMmale = (male / mgender).ToString();O
double fmale = InsuranceQuotations.Where(x => x.mGender == "Female").Average(t => t.mAge); double mmale = InsuranceQuotations.Where(x => x.mGender == "Male").Average(t => t.mAge); // MeanFmale amd MeanMmale - The fields that display MeanFmale = fmale.ToString(); MeanMmale = mmale.ToString();