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

时间:2013-02-18 14:18:36

标签: c# asp.net

我想在c#.net。

中组合使用(string,byte [])

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

存储数据类似......

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

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

4 个答案:

答案 0 :(得分: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>。请注意,我使用MemoryStream作为字节数组的有用只读视图。

答案 1 :(得分: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>

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

你可以做Jon所说的并创建一个类或使用一个名为KeyPairValue的类而不是创建一个数据结构