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

时间:2011-09-30 20:18:05

标签: c#

C#WinForms: 我要保存的东西:

name: string
previous value: double
new value: double

所以每个实体都有这三个字段,它们的数量根本不会太多,最多可能是10个。我想用它们做的只是为了能够添加一些成员然后循环它们并稍后阅读它们。

所以一个简单的方法是拥有三个数组,每个数组一个。 为它创建一个类,等等并不是真的很重要。所以我正在寻找一些我可以使用的优秀结构,如上所述的Arrays?还有更好的选择吗?

8 个答案:

答案 0 :(得分:12)

class Foo
{
   public string Name { get; set; }
   public double PreviousValue { get; set; }
   public double NewValue { get; set; }
}

答案 1 :(得分:3)

创建用于保存自定义数据的类没有任何问题。

如果它不被其他任何东西使用,你甚至可以创建一个私有的内部类。

对于不需要索引数据集的需要使用数组有问题。

答案 2 :(得分:2)

类或结构显然是要走的路。如果你想避免一个类,你可以使用Dictionary<string, KeyValuePair<double, double>>,其中键是名称,KeyValuePair代表前一个和新值

答案 3 :(得分:1)

为他们创建一个对象:

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...
}

答案 4 :(得分:1)

如果你进入OOP(你应该),那么一切都是一个阶级。课程有什么问题?它们不是根据它们的大小来选择的。如果他们模仿真实的东西那么他们应该存在。

我不会创造与别人所说的不同的东西。

答案 5 :(得分:1)

你是什么意思“创造一个班级并不是那么重要”?

课程不是邪恶的。它们有助于构建数据。这是他们被发明的主要原因之一。把它变成一个班级。它不会破坏你的代码的性能,但肯定会增加可读性,可维护性以及与使用其原语和集合相比的东西。

如果不是为了你自己,那么对于最终将继承你的代码库的可怜的家伙来说。

使用课程。

如果需要,我可以为您指出一些关于面向对象的好阅读材料。

答案 6 :(得分:1)

我认为一个类确实是存储这些数据的最简单方法。我知道你一直说使用一个类不是一个足够大的交易,但如果你需要轻松保存这个数据集以供以后使用,你真的需要使用一个类。你甚至自己说过:

  

每个实体都有这三个字段

您所谈论的“实体”是一个对象,它是一个类的实例。您可以拥有List<T>个对象,并使用foreach轻松迭代它们。

答案 7 :(得分:1)

如果您不想创建类或结构,那么您可以将数据存储在元组列表中。

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));

如果是我,虽然我会继续创建一个类,但它将使未来的开发人员更容易找出你的代码。