在c#.net中使用(string,byte[])组合的列表

本文关键字:byte 组合 列表 string net | 更新日期: 2023-09-27 17:59:48

我想在c#.net.中用(string,byte[])的组合列出列表

我确实想存储多个带有名称和图像的图像。。。比如,列出,但我不知道如何动态存储和检索要列出的数据!!

存储数据,例如。。

("Blue hills", byte[]), ("Sunset", byte[]), ("Winter", byte[])

请帮我操作上面的数据。。

在c#.net中使用(string,byte[])组合的列表

您应该使用这些信息创建一个数据结构(例如,一个新类)。例如:

public class Image
{
    private readonly byte[] data;
    private readonly string name;
    public string Name { get { return name; } }
    public Image(string name, byte[] data)
    {
        this.name = name;
        this.data = data;
    }
    public Stream GetDataStream()
    {
        return new MemoryStream(data, false);
    }
}

然后您将使用List<Image>。请注意,我使用MemoryStream作为字节数组的有用只读视图。

您要么想要

Dictionary<string, byte[]>

如果字符串值是唯一的,或者

List<Tuple<string, byte[]>>

如果不是。或者,您也可以编写自己的类来保存stringbyte[]

public class MyClass
{
    public string Name { get; set; }
    public byte[] Data { get; set; }
}

并创建您的类的List

List<MyClass>

您可以简单地使用字典。你的"名字"似乎是一把钥匙:

Dictionary<String, Byte[]> myDictionary = new Dictionary<String, Byte[]>();

如果你想访问某个值,那么你有一个优势,那就是你不需要迭代。

你可以按照Jon的话创建一个类,或者使用一个名为KeyPairValue的类,而不是创建一个数据结构