gpt4 book ai didi

c# - LiNQ 有不同的结果

转载 作者:行者123 更新时间:2023-11-30 14:14:09 25 4
gpt4 key购买 nike

我有一个名为 Variables 的类(class)它有多个成员,其中一个叫做 Name这是一个字符串。假设我有一个 List<Variables> .这有 NamesX , Y , Y , Z .

string variableName = 'Y';

int _totalCount = (from p in variableList
where p.Name == variableName
select p.Name).Count();

int _totalCount2 = variableList.Select(x => x.Name == variableName).Count();

问题:为什么是_totalCount返回 2 (这就是我想要的)而 _totalCount2返回 4

最佳答案

因为 Select 并没有像您想象的那样做:它是一个投影,而不是一个过滤器。表达式 x => x.Name == variableName 是为列表中的每个项目计算的。你会得到 {False, True, True, False}。然后对结果调用 Count(),返回 4

过滤是使用带有谓词的 Where 方法完成的:

int _totalCount2 = variableList.Where(x => x.Name == variableName).Count();

关于c# - LiNQ 有不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12738814/

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