gpt4 book ai didi

sql - LINQ:计算多列中真正 bool 值的数量

转载 作者:行者123 更新时间:2023-12-01 13:06:57 27 4
gpt4 key购买 nike

我正在使用 LINQ to SQL 来加速项目的交付,这真的很有帮助。但是,我正在为一些我习惯于使用手动 SQL 做的事情而苦苦挣扎。

我有一个 LINQ 集合包含三列,每列包含一个 bool 值 表示电子邮件、手机或地址是否可用。

我要编写一个 LINQ 查询来计算每列的真值 ,所以电子邮件列中有多少行设置为 true(其他两列相同)

最佳答案

如果您需要包含结果的单个对象:

var result = new {
HasEmailCount = list.Count(x => x.HasEmail),
HasMobileCount = list.Count(x => x.HasMobile),
HasAddressCount = list.Count(x => x.HasAddress)
};

或者使用聚合函数:
class Result
{
public int HasEmail;
public int HasAddress;
public int HasMobile;
}

var x = data.Aggregate(
new Result(),
(res, next) => {
res.HasEmail += (next.HasEmail ? 0 : 1);
res.HasAddress += (next.HasAddress ? 0 : 1);
res.HasMobile += (next.HasMobile ? 0 : 1);
return res;
}
);
x是类型 Result并包含汇总信息。这也可用于更复杂的聚合。

关于sql - LINQ:计算多列中真正 bool 值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2425157/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com