小编典典

我是否缺少有关LINQ的内容?

sql

我似乎缺少有关LINQ的东西。在我看来,它似乎吸收了我最不喜欢的一些SQL元素,并将其移入C#语言并将其用于其他用途。

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


阅读 158

收藏
2021-03-17

共1个答案

小编典典

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,但是确实如此。如果不想,则不需要使用表达式语法。

2021-03-17