设计方法我有一个C#项目,其中我需要阅读一些文本文件的一些网格数据(两列由行状数据的变量数)并在它们之间进行一些数学比较。你们认为什么是用数据结构和设计来表示这个最好的方法?基于C#的文本比较
样品数据表: LabelA:值a LabelB:VALUEB
我在想读取所有的数据到一个SQLite数据库,然后使用查询做一行通过对他们的行比较使用LINQ?你对这个想法有什么想法,而只是在内存数据结构中拥有一切?如果还有其他想法,请大声说出来。谢谢。
设计方法我有一个C#项目,其中我需要阅读一些文本文件的一些网格数据(两列由行状数据的变量数)并在它们之间进行一些数学比较。你们认为什么是用数据结构和设计来表示这个最好的方法?基于C#的文本比较
样品数据表: LabelA:值a LabelB:VALUEB
我在想读取所有的数据到一个SQLite数据库,然后使用查询做一行通过对他们的行比较使用LINQ?你对这个想法有什么想法,而只是在内存数据结构中拥有一切?如果还有其他想法,请大声说出来。谢谢。
如果它只是暂时的,我认为没有理由增加数据库的开销。只需将其存储在内存中。一个二维数组看起来是最明显的数据结构,除非你有特定的要求,不完全满足数组。
感谢Johnathan - 我还有一些需要添加的细节,可能会影响您的回复。本质上,我将需要对这些网格数组进行重度比较 - 包括一个数组中是否存在一个标签,而不是另一个中是否存在标签,或者它们是否都存在,这些值本身是否匹配。 此外,数据在本质上是非常讲究等级。换句话说,我们可能在产品A和产品B中,在每个文本文件中包含几个系列网格数组,但只有产品A在一个文本文件中。我想知道哪个文件丢失了哪些文件,或者是否有任何值丢失。 – HelpThis 2011-03-24 05:46:57
@HelpThis:然后编写代码来执行这些比较或者使用类似LINQ的东西。 – 2011-03-24 13:13:05
我不会坚持它,除非它是完全有必要在今后避免再处理一切访问这些数据。
我绝不会使用只是这样的数组,我会以封装逻辑对所有这比较构造对象。
我想简单地启动这种方式;
public class ImportedFile
{
private List<FileLine> lines;
public List<FileLine> Lines
{
get { return new ReadOnlyCollection(lines); }
}
public void AddLine(FileLine fl)
{
this.lines.Add(fl);
}
public void RemoveLine(FileLine fl)
{
this.lines.Remove(fl);
}
//Instance methods for comparing lines within the same file
//Static methods for comparing Files
}
public class FileLine
{
private String labelA;
public String LabelA
{
get { return labelA; }
set { labelA = value; }
}
private String labelB;
public String LabelB
{
get { return labelB; }
set { labelB = value; }
}
}
请不要添加回复作为答案,您可以使用个人答案下的评论功能进行其他讨论。我将最后一篇文章转到了评论中,但不幸的是它被截断了一点。 – 2011-03-24 12:55:34