Nou ja, het kan een heel stuk korter
C#:
1
| return properties.Any(p => p.Name == property); |
Daarbij zal het na optimalisatie (compiler) weinig verschil maken want je doet ongeveer hetzelfde.
De bovengenoemde Linq-query wordt idd pas uitgevoerd zodra je Count() aanroept.
Dan zul je dus dit krijgen:
C#:
1
| return properties.Count(p => p.Name == property); |
Hierbij gaan we dus itereren door alle properties en tellen hoeveel er de opgevraagde naam hebben. Waar Any stopt zodra we er één gevonden hebben.
Any:
C#:
1
2
3
4
5
6
7
8
9
| bool Any<Tsource>(this IEnummerable<Tsource> source, Func<Tsource, bool> predicate)
{
foreach(Tsource s in source)
{
if(predictate.Invoke(s))
return true;
}
return false;
} |
Count:
C#:
1
2
3
4
5
6
7
8
9
10
| int Count<Tsource>(this IEnummerable<Tsource> source, Func<Tsource, bool> predicate)
{
int count = 0;
foreach(Tsource s in source)
{
if(predictate.Invoke(s))
++count;
}
return count;
} |
(Ik vermoed dat dit ongeveer zo werkt

)
En ja, ik heb je zojuist even uitgelegd hoe LINQ werkt
[
Voor 106% gewijzigd door
Verwijderd op 20-11-2011 12:26
]