如何使用c#添加一个对象(表实体)作为值,并将键作为字典中表之一的字段之一

时间:2014-03-26 15:22:55

标签: c# dictionary

我有一张类似于下面的表格:

tableName : Spec

Nbr  UserId   Value1  Value2   Value 3
---  ------- ------   -------  -------
1    111        abc    def       ghi
2    111        sed    uvw       xyz
3    111        ttt    sss       vvv
4    222        sed    uvw       xyz
5    222        abc    def       ghi
6    222        sed    uvw       xyz
7    333        sed    uvw       xyz
8    333        abc    def       ghi
9    333        sed    uvw       xyz

我正在尝试添加一个可以

的新词典
Dictionary<long, Spec[]> specs = new Dictionary<long, Spec[]>();

我想将上表中的userid添加为应该是不同的Key,并将该Userid的整个表数据添加为Spec[]。 从上表中,我应该只有三个附加spec[]的键。

你能帮我吗?

2 个答案:

答案 0 :(得分:0)

创建一个包含字段的类。

public class Spec
{
    public int Nbr { get; set; }
    public int UserID { get; set; }
    public string Value1 { get; set; }
    public string Value2 { get; set; }
    public string Value3 { get; set; }
}

将该类的实例放在词典条目的Value部分中。将您想要的任何内容放入词典条目的键中。

var spec = new Spec {Nbr = 1, UserID = 111, Value1 = "foo" }
dictionary.Add(Nbr, spec);

答案 1 :(得分:0)

如果您的意思是按键对规格进行分组,请执行以下操作:

var dict = specs.GroupBy(i => i.UserId);

如果您需要在字典中,请添加:

.ToDictionary((k) => k.Key, (v) => v.ToList());

LINQ和分组非常适合您想要做的事情,因为它通过密钥对结果进行分组。