Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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

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#_.net_List_Dataset - Fatal编程技术网

C# 用于快速插入和筛选的最佳数据结构

C# 用于快速插入和筛选的最佳数据结构,c#,.net,list,dataset,C#,.net,List,Dataset,我正在编写一个简单的实用程序来获取应用程序日志并将其显示给用户。它需要从多个文件中获取日志条目,并将它们合并到单个内部存储器中。合并基于日志条目时间,因此多个条目可能具有相同的时间。请注意,日志的大小相当小,因此最大大小可能是10个文件,每个文件包含2000个日志条目 我还想向用户展示这一点,但允许他们根据不同的日志记录级别(调试、警告、错误等)进行过滤,并根据它来自的文件进行过滤。这听起来像是要解决的一种非常常见的问题,因此其他人必须有关于最佳方法的经验。我想到了以下几点 1、使用数据集存储日

我正在编写一个简单的实用程序来获取应用程序日志并将其显示给用户。它需要从多个文件中获取日志条目,并将它们合并到单个内部存储器中。合并基于日志条目时间,因此多个条目可能具有相同的时间。请注意,日志的大小相当小,因此最大大小可能是10个文件,每个文件包含2000个日志条目

我还想向用户展示这一点,但允许他们根据不同的日志记录级别(调试、警告、错误等)进行过滤,并根据它来自的文件进行过滤。这听起来像是要解决的一种非常常见的问题,因此其他人必须有关于最佳方法的经验。我想到了以下几点

1、使用数据集存储日志条目,然后使用数据视图应用筛选、排序

2、使用两个列表实例、一个主实例和一个副本,然后将其过滤到所需的条目,并对过滤后的列表应用自定义IComparer函数以获得正确的顺序


想法?

我的个人方法是将日志导入数据库,然后使用标准的数据库查询和数据绑定来过滤数据并将其呈现给用户。

我的个人方法是将日志导入数据库,然后使用标准的数据库查询和数据绑定来过滤数据并将其呈现给用户。

我假设数据足够小,可以放入内存中,并且您不希望有数据库和外部文件的开销

两者中的任何一个都应该很好地工作。我更喜欢
列表
,因此我更喜欢它,但我能理解使用
数据表
等的吸引力

另一种选择是在您选择的任何内部数据存储上使用LINQ。这可能会简化查询


我怀疑
列表
或您选择的任何集合将比
数据表
使用更少的内存。但是,除非您的日志条目很大,否则我不认为内存使用会有问题。

我假设数据足够小,可以放入内存,并且您不希望有数据库和外部文件的开销

两者中的任何一个都应该很好地工作。我更喜欢
列表
,因此我更喜欢它,但我能理解使用
数据表
等的吸引力

另一种选择是在您选择的任何内部数据存储上使用LINQ。这可能会简化查询


我怀疑
列表
或您选择的任何集合将比
数据表
使用更少的内存。但是,除非您的日志条目很大,否则我不认为内存使用会是一个问题。

这是什么类型的应用程序,即在初始加载+合并和每个筛选请求之间,您可以将数据集/列表/任何东西保留多久?其想法是监视一个实时应用程序,并在生成日志时监视日志。数据集/列表的更新速度为每秒几条记录,用户可以交互过滤。初始加载允许在应用程序启动时加载最近的消息。您是否已经解决了在其他应用程序写入文本文件时打开/监视文本文件的问题,以及仅检测和读取这些文本文件中的最新行的问题?只是在考虑回答时检查一下这是什么类型的应用程序,即在初始加载+合并和每个筛选请求之间,您可以将数据集/列表/任何东西保留多长时间?其想法是监视一个实时应用程序,并在日志生成时监视日志。数据集/列表的更新速度为每秒几条记录,用户可以交互过滤。初始加载允许在应用程序启动时加载最近的消息。您是否已经解决了在其他应用程序写入文本文件时打开/监视文本文件的问题,以及仅检测和读取这些文本文件中的最新行的问题?在考虑answerList和Linq2对象的同时进行检查在我看来是最容易的,但是如果你没有Linq经验,就像Jim说的,数据表就可以了。List和Linq2对象在我看来是最容易的,但是如果你没有Linq经验,就像Jim说的,数据表就可以了。