-1

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

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

存储数据之类的东西..

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

请帮我操作类似上面的数据..

4

4 回答 4

3

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

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>. 请注意,我使用 aMemoryStream作为字节数组的有用只读视图。

于 2013-02-18T14:20:53.767 回答
2

你要么想要

Dictionary<string, byte[]>

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

List<Tuple<string, byte[]>>

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

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

并创建一个List你的班级。

List<MyClass>
于 2013-02-18T14:22:45.327 回答
0

您可以简单地使用字典。您的“姓名”似乎是关键:

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

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

于 2013-02-18T14:22:45.900 回答
0

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

于 2013-02-18T14:22:59.097 回答