gpt4 book ai didi

c# - 我是否遗漏了有关 LINQ 的信息?

转载 作者:IT王子 更新时间:2023-10-29 04:35:57 27 4
gpt4 key购买 nike

我似乎遗漏了有关 LINQ 的一些信息。在我看来,这似乎是将我最不喜欢的一些 SQL 元素转移到 C# 语言中并将它们用于其他用途。

我的意思是,我可以看到在数据库以外的事物上使用类似 SQL 语句的好处。但是,如果我想编写 SQL,那么,为什么不直接编写 SQL 并将其放在 C# 之外呢?我在这里缺少什么?

最佳答案

LINQ 与 SQL 无关。 LINQ 是关于在对象上应用函数式编程范例。

LINQ to SQL 是建立在 LINQ 基础之上的 ORM,但 LINQ 远不止于此。我不使用 LINQ to SQL,但我一直使用 LINQ。

执行查找两个列表的交集的任务:

在 LINQ 之前,此任务需要编写一个嵌套的 foreach,它为大列表 O(N*M) 中的每个项目迭代一次小列表,大约需要 10 行代码。

foreach (int number in list1)
{
foreach (int number2 in list2)
{
if (number2 == number)
{
returnList.add(number2);
}
}
}

使用 LINQ,它在一行代码中完成同样的事情:

var results = list1.Intersect(list2);

您会注意到它看起来不像 LINQ,但它确实像。如果您不想,则不需要使用表达式语法。

关于c# - 我是否遗漏了有关 LINQ 的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21280/

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