gpt4 book ai didi

c# - 如何将这些 LINQ 语句重写为一个查询

转载 作者:行者123 更新时间:2023-11-30 19:38:00 26 4
gpt4 key购买 nike

是否可以使用一个 LINQ 查询来做同样的事情?

var ints = new []{1,2,3,4,5};
var odd = from i in ints where i%2==1 select i;
var even = from i in ints where i%2==0 select i;
var q = from s in new[]{""}
select new {oddCount = odd.Count(), evenCount = even.Count()};

Console.Write(q);

编辑:想要得到这个

enter image description here

最佳答案

Count() 已经允许您指定谓词。因此,您可以像这样将以上内容组合在一个 linq 中:

var ints = new[] { 1, 2, 3, 4, 5 };
Console.Write($"Odd={ints.Count(i => i % 2 == 1)}, Even={ints.Count(i => i % 2 == 0)}");

另请注意,它比执行 Where() 快得多,因为 计数 比实际返回匹配元素更容易执行。

编辑

如果您只需要一个 linq 查询,您可以使用以下巧妙的技巧:

var ints = new[] { 1, 2, 3, 4, 5 };
var Odd = ints.Count(i => i % 2 == 1);
Console.Write($"Odd={Odd}, Even={ints.Length - Odd}");

关于c# - 如何将这些 LINQ 语句重写为一个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658458/

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