C#字典中几乎没有不同的值

本文关键字:几乎没有 字典 | 更新日期: 2023-09-27 18:29:09

我想创建一个数据存储区来存储一些数据。

第一个想法是创建一个字典,它可以有一些值的一个键,但我不知道如何存储几个不同的值,例如,我需要两个值(字符串和图像)。有人能建议如何实现这一点吗?

否则我该如何存储这些信息??

C#字典中几乎没有不同的值

在OOP世界中,数据通常以类表示,这些类定义了数据的结构、行为和职责。从存储字符串和图像的示例中,您可以创建类:

public class Article
{
    public string Name { get;set;}
    public byte[] Image { get;set;}
}

然后你的字典会是这样的:

Dictionary<string,Article> data;

有几种方法可以实现这一点。

1) 创建一个以stringimage为成员的类。然后将该类的实例存储为值。

2) 使用Tuple<String, Image>作为值

由于在c#中,所有对象都派生自对象,因此可以使用对象作为dictionary的值。

Dictionary<string, object> dataStore;
var dic = new Dictionary<string, object>();

通过这种方式,您可以在字典中存储任何类型的对象,但不要忘记进行正确的强制转换。

是否要根据一个键存储不同的数据?例如"key1"->(姓名、年龄、生日),或者您想在ache键下存储不同类型的数据?例如"key1"->姓名、"key2"->年龄、"key3"->生日?在第一种情况下,应该为值创建一个新类,并在每个键下存储该类的实例。对于第二种情况,您可以创建一个字典,并将类型的值设置为"object"。然后,您可以将任何对象数据类型存储到键中。