web-dev-qa-db-fra.com

Comment obtenir toutes les femelles?

Je voudrais obtenir le sexe pour les calculs, par exemple les options homme et femme sont dans une colonne. Je voudrais obtenir tous les hommes ou toutes les femmes pour le calcul.

J'ai une "propriété calculée" qui me donne la liste de tous les éléments avec le calcul. Voici le code:

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();
    }

}

Comment puis-je filtrer le genre dans cette "propriété calculée".

27
Xdrone

Vous pouvez utiliser LINQ. Cela ressemblerait à ceci:

int averageAge =  this.DataWorkspace.ApplicationData.InsuranceQuotations.
    Where(iq => iq.Gender == Gender.Female).
    Average(iq => iq.mAge);
7
DLCross

J'espère que cela aidera quelqu'un d'autre à filtrer la liste de choix Dans _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();

Ou 

   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();
0
Xdrone

Pourriez-vous filtrer avec une instruction 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();
    }

}
0
jarchuleta