我有一个datareader,其中包含这样的列,以及通过SP填充的其他列:
ColX ColY ColZ
NYC 100 200
NYC 101 200
EWR 100 200
EWR 100 200
我正在尝试迭代此结果,并执行一项操作,例如在ColX,ColY,ColZ的组合中为每个副本发送电子邮件;在上面的例子中EWR-100-200
实现这一点的有效方法是什么,因为我无法控制在C#中返回此数据的SP?
答案 0 :(得分:1)
创建Hashset<string>
以保存您发送电子邮件的项目的密钥。您可以通过以下方式创建密钥:
string key = ColX.ToString() + ColY.ToString() + ColZ.ToString();
所以:
var keysUsed = new Hashset<string>();
while (reader.Read())
{
// Assuming you got the values from the columns...
string key = ColX.ToString() + ColY.ToString() + ColZ.ToString();
if (keysUsed.Add(key))
{
// send email
}
}
如果项目已添加到keysUsed.Add
,则true
将返回Hashset
。如果密钥已存在,则该方法将返回false
。