如何获得所有女性?

Posted

技术标签:

【中文标题】如何获得所有女性?【英文标题】:How to get all the females? 【发布时间】:2015-08-04 22:16:52 【问题描述】:

我想获取性别进行计算,例如男性和女性选项在一列中。我想得到所有男性或所有女性进行计算。

我有一个“计算属性”,它提供了所有项目的列表以及计算。这是代码:

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


如何过滤此“计算属性”中的性别。

【问题讨论】:

计算属性不给出循环。什么意思? 我什至对只有一个的非泛型算法感兴趣。谢谢。 你能用 if 语句过滤吗? 与您的问题无关,但您为什么要传递 ref string 参数而不是返回字符串值?为什么返回一个字符串而不是一个数字? 我无法回答你的问题,所以我在这里重新发布了它 - social.msdn.microsoft.com/Forums/vstudio/en-US/… 【参考方案1】:

您可以使用 LINQ。它看起来像这样:

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

【讨论】:

【参考方案2】:

你能用 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();
    


【讨论】:

我不喜欢if (value == true),用LINQ会更好。【参考方案3】:

希望这可以帮助其他人过滤选择列表 在 _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();

【讨论】:

以上是关于如何获得所有女性?的主要内容,如果未能解决你的问题,请参考以下文章

2020 WTM 谷歌女性开发者大会 Together We Rise

为女性们点赞!Google 为女性提供更多支持

秋季女性该如何调理月经不调?

女性健康数字诊所Maven新获A轮融资1080万美元

中医教你如何调理女性内分泌失调

“零信任”的世界,让女性更安全