LINQ is a query/update language for data structures. The beauty of it is that it can be used to read/update/modify vectors, lists, maps, etc. So, you just have one API to learn. And this API is easy to learn because it is modeled on SQL.
And that's the problem - you have a very Java-like syntax for the rest of C# with intrusions of SQL-like syntax. I'm not sure it's a good idea.
A solution more like the comprehensions you find in functional languages would probably be neater and more flexible.