我似乎遗漏了有关 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/