gpt4 book ai didi

c# - 代码 : retrieve item from Array using FirstorDefault() 的解释

转载 作者:太空狗 更新时间:2023-10-30 01:21:22 25 4
gpt4 key购买 nike

假设我在数组中有一些项目

Product[] myProducts = new Product[]
{
new Product { ID = 1, name = "Ketchup1", category = "Sauces", price = 200.00m },
new Product { ID = 2, name = "Ketchup2", category = "Sauces", price = 200.00m },
new Product { ID = 3, name = "Ketchup3", category = "Sauces", price = 200.00m }
};

然后假设我尝试使用此方法进行检索

public Product GetProductById(int id)
{
var product = products.FirstOrDefault((p) => p.Id == id);
if (product == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return product;
}

我已经阅读了它的作用,但我不明白这里发生了什么:

FirstorDefault(p => p.Id == id);

最佳答案

FirstOrDefault(predicate)遍历集合并返回与谓词匹配的第一个元素。在您的示例中,它将是 p.Id == id 的第一个元素.当没有匹配谓词的值时返回默认值(所有引用类型为 null)。

(p) => p.Id == idlambda expression匹配 Func<Product, bool> - 它需要一个类型为 Product 的参数(它被命名为 p )并返回 bool值(value)。

FirstOrDefault 可能看起来真的很像它的 eduLINQ equivalent :

public static TSource FirstOrDefault<TSource>( 
this IEnumerable<TSource> source,
Func<TSource, bool> predicate)
{
// Argument validation elided
foreach (TSource item in source)
{
if (predicate(item))
{
return item;
}
}
return default(TSource);
}

关于c# - 代码 : retrieve item from Array using FirstorDefault() 的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873732/

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