我有一个数据阅读器,它在通过 SP 填充的其他列中具有这样的列:
ColX ColY ColZ
NYC 100 200
NYC 101 200
EWR 100 200
EWR 100 200
我正在尝试迭代这个结果,并执行一个操作,比如为 ColX、ColY、ColZ 组合中的每个副本发送电子邮件;在上面的例子中 EWR-100-200
鉴于我无法控制在 C# 中返回此数据的 SP,实现此目的的有效方法是什么?
我有一个数据阅读器,它在通过 SP 填充的其他列中具有这样的列:
ColX ColY ColZ
NYC 100 200
NYC 101 200
EWR 100 200
EWR 100 200
我正在尝试迭代这个结果,并执行一个操作,比如为 ColX、ColY、ColZ 组合中的每个副本发送电子邮件;在上面的例子中 EWR-100-200
鉴于我无法控制在 C# 中返回此数据的 SP,实现此目的的有效方法是什么?
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
。