gpt4 book ai didi

c# - 如何在 LINQ Where() 中使用额外的 int 参数

转载 作者:太空狗 更新时间:2023-10-30 00:23:44 24 4
gpt4 key购买 nike

请注意,这不是关于 delegates 是什么的问题都一般。另外,我看到了 docs没有变得更聪明。

在 LINQ 中,我可以使用类似这样的东西。

using(Model model = new Model())
{
return model.Things
.Where(thing => thing.IsGood);
}

我可以看到返回类型(运算符的左侧对象)是 Thing 类型,条件(运算符的右侧对象)是 bool 类型>。 Intellisense 告诉我可以从这两个中选择,但我对第二个感到困惑。

Func<Thing, bool>  
Func<Thing, int, bool>

我假设 lambda 运算符只是实际调用的语法糖。那是对的吗?如果是这样,那个整数在那里做什么,我该如何指定它?

最佳答案

来自docs for this overload :

predicate

Type: System.Func<TSource, Int32, Boolean>

A function to test each source element for a condition; the second parameter of the function represents the index of the source element.

如上所示,整数是元素的索引。

所以,

var everyTwo = input.Where((c, i) => i % 2 == 0);

例如,仅返回每隔一个元素。上面链接的文档有一个涉及两个参数的用例的稍微复杂的示例。

我不确定这是否只是一个拼写错误,但您链接到的文档似乎是针对不包含此参数的重载,这可能解释了为什么您找不到相关解释。

关于c# - 如何在 LINQ Where() 中使用额外的 int 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34691507/

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