我在这里得到了很多帮助,我很感激。但是,我似乎无法让我的简单文本解析器工作。任何帮助指出我的错误将不胜感激。
我的Program.cs是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Cawk
{
class Program
{
static void Main()
{
Cawk.Execute(File.OpenText(@"C:\Temp\test.txt"));
}
}
}
从那里我试图将一个简单的文本文件传递给我的解析器,但是我在开始时有一个控制台调试行,它从来没有被写过,也没有得到任何输出程序。
Cawk.cs看起来像:
using System;
using System.Collections.Generic;
using System.IO;
namespace Cawk
{
public static class Cawk
{
public static IEnumerable<Dictionary<string, object>> Execute(StreamReader input)
{
Dictionary<string, object> row = new Dictionary<string, object>();
Console.WriteLine("Test output from Cawk");
string line;
//string[] lines = File.ReadAllLines(path);
//read all rows
while ((line = input.ReadLine()) != null)
{
// trim trailing spaces
//line = line.Trim();
//[and so on until the line is parsed and written to the console]
我从未得到过&#34;来自Cawk&#34;的测试输出虽然。我保存它,构建它,然后从命令提示符运行应用程序。为什么我从未到过Cawk的Console.Writeline?
谢谢大家。
答案 0 :(得分:3)
当然你没有,Execute
返回一个你忽略的枚举。在枚举之前,Enumerables实际上并不执行它们中的代码。
例如,修复将是:
foreach(Cawk.Execute(File.OpenText(@"C:\Temp\test.txt")));
我希望这是一个足够大的线索,表明您的架构存在严重问题。