此代码检查交易对手列表是否包含电子邮件地址。 然后在else语句中,有可能电子邮件地址仍然为0.我需要一段代码,当它为零时填写电子邮件地址列表。
if (counterParty == null)
{
mailAddressesOfCounterparty = new List<Email>();
Email unKnownEmail = new Email();
unKnownEmail.EmailAddress = loopPayment.ShortNameCalypso + "@NotInCounterpartyTable.nl";
mailAddressesOfCounterparty.Add(unKnownEmail);
}
else
{
mailAddressesOfCounterparty =
emailAddress.Where(ea => ea.CounterPartyId == counterParty.Id && ea.IsOptionContract == startOfGroupPayment.OptionContract).ToList();
}
此代码需要制作电子邮件地址。只是不知道如何检查是否为零。
Email unKnownEmail = new Email();
unKnownEmail.EmailAddress = loopPayment.ShortNameCalypso + "@NotInCounterpartyTable.nl";
mailAddressesOfCounterparty.Add(unKnownEmail);
在其他我需要添加一个可能性,当它变为零时,将电子邮件地址更改为某些东西。 代码不会让我们使用if语句。
mailAddressesOfCounterparty变为零,因为尚未在数据库中添加内容。但是,在使用此应用程序时,这些信息可能会丢失。在这种情况下,我想创建一个电子邮件地址,表明无法找到它。
答案 0 :(得分:5)
如果我正确理解了这个问题,您需要验证列表中是否有您在else子句中过滤的地址。
linq扩展方法&#34; Any()&#34;可用于确定枚举是否包含任何项目(还有其他方式),使用此示例(基于您的代码)是:
if (counterParty == null)
{
mailAddressesOfCounterparty = new List<Email>();
Email unKnownEmail = new Email();
unKnownEmail.EmailAddress = loopPayment.ShortNameCalypso + "@NotInCounterpartyTable.nl";
mailAddressesOfCounterparty.Add(unKnownEmail);
}
else
{
mailAddressesOfCounterparty = emailAddress.Where(ea => ea.CounterPartyId == counterParty.Id && ea.IsOptionContract == startOfGroupPayment.OptionContract).ToList();
if (!mailAddressesOfCounterparty.Any())
{
Email unKnownEmail = new Email();
unKnownEmail.EmailAddress = loopPayment.ShortNameCalypso + "@NotInCounterpartyTable.nl";
mailAddressesOfCounterparty.Add(unKnownEmail);
}
}
答案 1 :(得分:2)
如果我正确理解了这个问题,可以在else
分支中引入如下的初始化
mailAddressesOfCounterparty = mailAddressesOfCounterparty ?? new List<Email>();
如果是null
,则会使用新列表对其进行初始化。但是,在mailAddressesOfCounterparty
分支的第一个语句之后,我不知道else
如何为空。