The following simple LINQ code
string[] words = { \"hello\", \"wonderful\", \"linq\", \"beautiful\", \"world\" };
// Get only short words
var shortWords =
Well, you need to distinguish between some different things:
C# doesn't support as much in query expressions as VB does, but here's what it does support:
select x.foo)where x.bar > 5)x join y on x.foo equals y.bar)x join y on x.foo equals y.bar into g)group x.foo by x.bar)orderby x.foo ascending, y.bar descending)let tmp = x.foo)from x in y from z in x)I don't know how many of those are supported directly in Python's list comprehensions.
Note that although LINQ to Objects deals with delegates, other query providers (e.g. LINQ to SQL) can deal in expression trees which describe the query instead of just presenting executable delegates. This allows the query to be translated into SQL (or other query languages) - again, I don't know whether Python supports that sort of thing or not. It's a significant part of LINQ though.