web-dev-qa-db-ja.com

すべての女性を取得する方法は?

計算のために性別を取得したいと思います。たとえば、男性と女性のオプションが1つの列にあります。計算のためにすべての男性またはすべての女性を取得したいと思います。

私は計算とともにすべてのアイテムのリストを私に与える「計算されたプロパティ」を持っています。コードは次のとおりです。

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

}

この「計算されたプロパティ」で性別をフィルタリングするにはどうすればよいですか。

27
Xdrone

LINQを使用できます。次のようになります。

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

これが、他の誰かが_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();

または

   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

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