哪些运算符应该支持LINQ查询表达式?

时间:2009-10-02 11:53:45

标签: c# vb.net linq

在51 Standard Query Operators中(其中只有42个实际上是查询运算符),Visual Basic 9只支持24个,C#3只支持11个:Query Expression Syntax for Standard Query Operators

在许多情况下,查询语法可以说比等效方法语法更具可读性,尤其是涉及透明标识符时。但是,如果必须组合查询和方法调用,则可读性会失效。

所以问题:您希望在查询表达式语法中使用您选择的语言支持哪些查询运算符(当前或假设)?

2 个答案:

答案 0 :(得分:0)

我希望有一个use关键字,其行为类似于F#中的同名绑定,在适当的时候处理分配给它的值:

var lengths = from path in myFiles
              use fs = File.OpenRead(path)
              select new { path, fs.Length };

(我知道还有其他方法可以获得文件长度,只需运用你的想象力。)

此处介绍了一种解决方法:Using IDisposables with LINQ

答案 1 :(得分:0)

我没有尝试过,但你可以使用let吗?

var lengths = from path in myFiles
              let fs = File.OpenRead(path)
              select new { path, fs.Length };