gpt4 book ai didi

c# - 如何正确使用C#Linq获取过滤列表?

转载 作者:太空宇宙 更新时间:2023-11-03 17:49:10 26 4
gpt4 key购买 nike

例如,我有如下C#LINQ查询:

var allBooks = from book in books
select book;
var booksNonFiction = allBooks.Where(x => x.Genre = NonFiction)


在此示例中,我想获取 NonFiction集合中的所有 allBooks标题。对于lambda表达式有点不确定。

最佳答案

为了理解如何在lambda表达式中思考,我将“ x =>”转换为“序列中的每个x”有很大帮助。

在您的示例中,AllBooks是一系列书籍。所以你的声明:

var booksNonFiction = allBooks.Where(x => x.Genre == NonFiction) 


会翻译成:“从所有书籍的顺序中,选择“ book.genre等于非小说类作品的每本书”

如果您有更困难的linq语句,则可以在序列(集合)中使用复数名词,在lambda表达式的参数中使用单数名词(使用x的地方)会有所帮助。这可以帮助您记住每个x表示的含义。

var nonFictionBooks = allBooks.Where(book => book.Genre == NonFiction)

在这里,您可以看到这本书是allBooks集合的元素之一。

var frontPages = allBooks.Where(book => book.Genre == NonFiction)
.Select(book => book.FirstPage)


即使您现在可能还没有选择语句,您仍可以理解,这意味着从allBooks集合中的每个“ book”中,您都应该选择book.FirstPage。

为了帮助理解Linq的可能性,文章 The Standard Linq operators帮助我学习了最常用的Linq语句

Linq在很大程度上依靠扩展方法。如果您对此不熟悉,则以下内容可能会有所帮助: Extension Methods Demystified

关于c# - 如何正确使用C#Linq获取过滤列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40116959/

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