【发布时间】:2013-01-22 12:22:17
【问题描述】:
我有这个代码:
private IEnumerable<FindReplacePair> ConstructFindReplacePairs(string inputFilePath)
{
var arrays = from line in File.ReadAllLines(Path.GetFullPath(inputFilePath))
select line.Split('|');
var pairs = from array in arrays
select new FindReplacePair { Find = array[0], Replace = array[1] };
return pairs;
}
我想知道是否有一种干净的 linq 语法可以只在一个查询中执行此操作,因为感觉应该有。
我尝试链接 from 子句(一个 SelectMany),但它过多地拆分了数据,我无法从单独的数组中进行选择(而是一次获得一个单独的字符串)。
【问题讨论】:
-
是什么让你觉得这里不干净?为什么一个班轮这么好?
-
老实说,我不确定为什么我认为那不干净。我对这样做没有任何强烈的反对(毕竟它有效,而且并不可怕!)回头看它比我记得的要好 - 不过最初,我打算将它作为一个动作。要回答你的问题,它本身并不比单个查询更好,但由于这是我最初想要的,但我无法让它工作,所以我问了 StackOverflow,现在已经了解了至少两个关于这种类型的 linq 操作的新东西。跨度>