Eni*_*ate 2 .net c# linq lambda c#-4.0
我从文本文件中获取lineCount,boolean值和lastline以及下面的查询
private void ReadFile(FileInfo[] TXTFiles, out int totalLineCount, out bool result, out string footerContent)
{
totalLineCount = File.ReadLines(TXTFiles[0].FullName).Count();
result = File.ReadLines(TXTFiles[0].FullName).Last().StartsWith(fileFooterIdentify);
footerContent = File.ReadLines(TXTFiles[0].FullName).Last();
}
Run Code Online (Sandbox Code Playgroud)
在这里我正在阅读文件三次它会有点击中性能我们有任何可能将这三行组合成单个表达式并期待对文件进行单个读取操作..
任何人都可以帮助我如何在上面进行单一表达.
提前谢谢了..
也许我没有完全理解你的要求,但如果是你担心的表现,我建议如下:
private void ReadFile(FileInfo[] TXTFiles, out int totalLineCount, out bool result, out string footerContent)
{
var fileContents = File.ReadLines(TXTFiles[0].FullName);
totalLineCount = fileContents.Count();
result = fileContents.Last().StartsWith(fileFooterIdentify);
footerContent = fileContents.Last();
}
Run Code Online (Sandbox Code Playgroud)
据我所知,将其转换为单个表达式既不会提高性能,也不会使其更具可读性.
编辑:
如果你正在寻找的方式来遍历在你的FileInfo阵列,我可以建议下面的表达式:
var fileReadInfo = TXTFiles.Select(file =>
{
var fileContents = File.ReadAllLines(file.FullName);
return new Tuple<int, bool, string>(fileContents.Count(),
fileContents.Last().StartsWith(fileFooterIdentify), fileContents.Last());
});
Run Code Online (Sandbox Code Playgroud)
虽然我建议你创建一些类来存储有关文件的所有信息,而不是使用Tuple.
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |