我从一个表中有两列SqlDataReader
返回数据。
还有一个键值对集合,其中键是读者中第一列的不同值。
现在我必须根据集合中可用的键过滤阅读器第二列的值。
例如。
Column 1 Column 2
AZ 130
AS. 140
AZ. 150
AS. 160
字典变量将是:Dictionary('AZ', List<string>[])
。
AZ和AS的区别在于读者。
所以这里AZ将是关键,List将有130和150.列表的大小将是不同键的数量。
答案 0 :(得分:1)
由于您出于某种原因拒绝显示您的代码,我将提供一般解决方案。
您可以使用reader.Read()
简单地遍历行,并将数据收集到Dictionary<string, List<string>>
中:
var dict = new Dictionary<string, List<string>>();
using (var reader = yourCommand.ExecuteReader())
{
while (reader.Read())
{
string column1 = (string)reader["Column1"];
string column2 = (string)reader["Column2"];
if (!dict.ContainsKey(column1))
dict.Add(column1, new List<string>());
dict[column1].Add(column2);
}
}
它将产生字典,它将具有两个键值对:“AZ”,其中List包含“130”和“150”,“AS”包含“140”和“160”。
JSON表示,清晰度:
{
"AZ": ["130", "150"],
"AS": ["140", "160"]
}