保存这些数据的好结构是什么?

本文关键字:结构 是什么 数据 保存 | 更新日期: 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));

如果是我,我会直接创建一个类,这将使未来的开发人员更容易理解你的代码。