我有一张类似于下面的表格:
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[]
的键。
答案 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和分组非常适合您想要做的事情,因为它通过密钥对结果进行分组。