Sollte LINQ vermieden werden, weil es langsam ist? [geschlossen

Mir wurde gesagt, dass .net linq so langsam ist, dass wir es nicht verwenden sollten, und ich frage mich, ob jemand anderes die gleiche Schlussfolgerung gezogen hat, und das Beispiel lautet:

Brauchte 1443 ms, um 1000000000 zu erledigen, vergleicht Nicht-LINQ.
Brauchte 4944 ms für 1000000000 im Vergleich zu LINQ.
(243% langsamer)

der Nicht-LINQ-Code:

for (int i = 0; i < 10000; i++)
{
    foreach (MyLinqTestClass1 item in lst1) //100000 items in the list
    {
        if (item.Name == "9999")
        {
            isInGroup = true;
            break;
        }
    }
}

Brauchte 1443 ms, um 1000000000 zu erledigen, vergleicht Nicht-LINQ.

LINQ-Code:

for (int i = 0; i < 10000; i++)  
    isInGroup = lst1.Cast<MyLinqTestClass1>().Any(item => item.Name == "9999");  

Brauchte 4944 ms für 1000000000 im Vergleich zu LINQ.

Ich denke, es ist möglich, den LINQ-Code zu optimieren, aber der Gedanke war, dass es einfach ist, wirklich langsamen LINQ-Code zu erhalten, und dass er nicht verwendet werden sollte. Wenn LINQ langsam ist, folgt daraus auch, dass PLINQ langsam ist und NHibernate LINQ langsam ist. Daher sollte keine LINQ-Anweisung verwendet werden.

Hat jemand anderes festgestellt, dass LINQ so langsam ist, dass er wünschte, er hätte es nie benutzt, oder komme ich zu einer allzu allgemeinen Schlussfolgerung, die auf solchen Benchmarks basiert?

Antworten auf die Frage(34)

Ihre Antwort auf die Frage