我正在使用内部文件解析库,我用它来解析遗留系统生成的粗糙报告文件。库迭代允许您定义连续应用的 Linq 查询,以在文件中返回一组可枚举的结构。
一个典型的例子如下所示。
var OrderReportParser =
from blanks in Rep(BlankLine) // One or more blank lines
from header1 in TextLine // A header text line with no useful information
from hyphenLine in WhiteSpace.And(Rep(Char('-'))).And(BlankLine)
// A line containing only hyphens
/* ... Snip ... lots of other from clauses */
from orderId in WhiteSpace.And(AlphaNumeric) // The id of this record
from price in WhiteSpace.And(Decimal) // Order price
from quantity in WhiteSpace.And(Integer) // Order quantity
select new OrderLine (orderId, price, quantity)
因为我的大部分文件都是简单的文本,所以输出中不需要由上述语句生成的许多中间结果(如上面示例中的变量blanks
, header1
, hyphenLine
)。
C# 中是否有任何此类机制为中间结果创建变量,或者我是否总是为每个结果创建变量?
我正在考虑_
可以以这种方式使用的示例,例如 F# 的变量。请参阅F# 的下划线:为什么不直接创建一个变量名?以元组的上下文为例。