保存这些数据的好结构是什么?
本文关键字:结构 是什么 数据 保存 | 更新日期: 2023-09-27 18:10:14
c# WinForms:我想保存的内容:
name: string
previous value: double
new value: double
所以每个实体都有这三个字段,它们的数量不会太多,可能最多10个。我想对它们做的只是添加一些成员,然后循环遍历它们,稍后再读取它们。
所以一个简单的方法是有三个数组,每个数组一个。为它创建一个类并不是什么大不了的事情,所以我正在寻找一些我可以使用的好的结构,就像我上面说的数组?有更好的选择吗?
class Foo
{
public string Name { get; set; }
public double PreviousValue { get; set; }
public double NewValue { get; set; }
}
创建类来保存自定义数据并没有错。
你甚至可以创建一个私有的内部类,如果它不被其他任何东西使用。
在不需要索引数据集的情况下使用数组是有问题的
类或结构显然是可行的方法。如果你想避免一个类,你可以使用Dictionary<string, KeyValuePair<double, double>>
,其中键是名称,KeyValuePair代表以前和新的值
为它们创建一个对象:
public class Foo
{
public string Name { get; set; }
public double Value { get; set; }
public double OldValue { get; set; }
}
然后你可以将它们添加到List中并循环访问它们:
foreach(var foo in myListOfFoos)
{
// Do something with foo.Name, foo.Value, etc...
}
如果你对OOP感兴趣(你应该),那么一切都是一个类。这些课程有什么问题吗?它们不是根据它们的大小来选择的。如果它们模拟了真实的东西,那么它们就应该存在。
我认为类确实是存储这些数据的最简单的方法。我知道您一直在说,使用类并不是什么大问题,但是如果您需要保存这个数据集以便以后使用,那么您确实需要使用类。你自己也说过:
每个实体都有这三个字段
你所说的"实体"是一个对象,它是一个类的实例。您可以拥有对象的List<T>
,并使用foreach
轻松地遍历它们。
你说的"创建一个类并没有那么重要"是什么意思?
类不是邪恶的。它们帮助构建数据。这是发明它们的主要原因之一。让它成为一个类。它不会降低代码的性能,但与使用原语及其集合相比,它肯定会提高可读性、可维护性等。
如果不是为了你自己,那么就是为了最终继承你代码库的那个可怜的家伙。
使用类
如果你需要的话,我可以给你介绍一些关于面向对象的好的阅读材料。
如果你不想创建类或结构,那么你可以将数据存储在元组列表中。
List<Tuple<string, double, double>> MyData = new List<Tuple<string, double, double>>();
MyData.Add(new Tuple<string, double, double>("test1", 1, 2));
MyData.Add(new Tuple<string, double, double>("test2", 3, 4));
如果是我,我会直接创建一个类,这将使未来的开发人员更容易理解你的代码。