Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中查询txt文件中的特定行#_C#_.net_Linq - Fatal编程技术网

C# 在C中查询txt文件中的特定行#

C# 在C中查询txt文件中的特定行#,c#,.net,linq,C#,.net,Linq,我有以下文本文件: 我想做一个特定的查询,从特定的一分钟开始提取行,并将它们放在一个数据网格中,该数据网格有一个对象(字符串时间戳、字符串计算机名、字符串ID、字符串事件)作为其数据字段 例如:假设我想显示从10:10:00到当前时间的所有行 如何测试每一行以确定它是否符合我的时间要求?使用以下方法: var queryResult = File.ReadAllLines("<yourFile.txt>").Skip(1).TakeWhile(x => (DateTime.P

我有以下文本文件:

我想做一个特定的查询,从特定的一分钟开始提取行,并将它们放在一个数据网格中,该数据网格有一个对象(字符串时间戳、字符串计算机名、字符串ID、字符串事件)作为其数据字段

例如:假设我想显示从10:10:00到当前时间的所有行

如何测试每一行以确定它是否符合我的时间要求?

使用以下方法:

var queryResult = File.ReadAllLines("<yourFile.txt>").Skip(1).TakeWhile(x => (DateTime.Parse(x.Substring(0, 19), CultureInfo.InvariantCulture).TimeOfDay.TotalSeconds) > (new TimeSpan(10, 10, 0).TotalSeconds)).ToArray();

现在,您可以从
queryResult

访问单个数据,您对文件的结构有哪些信息?字段选项卡是分开的吗?你有没有尝试过解决你的问题,或者只是在等待有人为你写一个解决方案?字段选项卡各有12行。我真的不知道我是如何处理这个查询的。不要费心解析文本文件,在C#中使用Microsoft.VisualBasic.FileIO.TextFieldParser。我建议使用,以避免一次将所有内容读取到内存中。那么您就不需要
拆分
either@Patrick我知道该方法存在,但我在使用它时遇到了几个问题。@FᴀʀʜᴀɴAɴᴀᴍ 我很想听听你看到了什么样的问题。可能会帮助其他人。老实说,这些都是关于行尾的小问题,这花费了我很多时间和思考来解决。通过使用
ReadAllLines
,这显然是一个性能提升。在帖子中添加了它。
var queryResult = File.ReadAllLines("<yourFile.txt>")
                      .Skip(1)
                      .TakeWhile(x => (DateTime.Parse(x.Substring(0, 19), CultureInfo.InvariantCulture).TimeOfDay.TotalSeconds) > (new TimeSpan(10, 10, 0).TotalSeconds))
                      .Select(x => new { TimeStamp = DateTime.Parse(x.Substring(0, 19), CultureInfo.InvariantCulture), CoumputerName = x.Substring(21, 10), ID = x.Substring(45, 4), Event = x.Substring(59)})
                      .ToArray();