【问题标题】:Rename Key/Value in KeyValuePair/Dictionary重命名 KeyValuePair/Dictionary 中的键/值
【发布时间】:2014-09-17 10:04:29
【问题描述】:

在我的代码中越来越多的地方,我以以下方式使用KeyValuePair<string,string>Dictionary<string,string>KeyValuePair 包含主电子邮件和 UPN 名称,我总是记不住 @ 中的哪一个987654324@,哪个在Value

我能否从 KVP/Dict “派生”类,只重命名 KeyValue(分别为 UPN 和 eMail),但保留它们的所有内部工作原理?

如果不是,我还需要哪些其他易于维护的可能性来帮助我记住哪个是哪个?

【问题讨论】:

  • 只有一个是Key吗?然后用“Key”字命名:eMailKey

标签: c# dictionary keyvaluepair


【解决方案1】:

一个简单的解决方案是使用 System.Net.Mail 中内置的 .NET MailAddress 类而不是字符串来处理您的电子邮件。这也增加了您的地址也得到验证的好处。

编辑:链接到 MSDN 文件。

http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress(v=vs.110).aspx

【讨论】:

  • 如果我将 MailAddress 用于代码中的每个电子邮件地址,我想这也有助于避免比较大写、小写、驼峰式电子邮件地址时出现问题?
  • 请注意以备将来参考:我仍然必须使用自定义比较器。 mail1.Equals(mail2) 为真,如果邮件地址相同(不区分大小写)且显示名称相同(不区分大小写)。仅相同的邮件地址(不区分大小写)是不够的,如果邮件地址确实相同(区分大小写),mail1.Address==mail2.Address 为真。
  • @Alexander 无论如何,您都应该保存小写的电子邮件地址,因为每个使用它们的邮件服务器或邮件客户端也会这样做。发送电子邮件地址时大小写无关紧要,因为它们仅以小写形式发送。
  • Exchange 邮件服务器不以小写形式保存邮件地址。我正在比较来自 SQL 的电子邮件地址(我将它们存储为小写)和来自 AD 的电子邮件地址(这将是管理员在创建 Exchange 帐户时选择的任何一种外壳)。
  • 不过,您应该始终以小​​写形式比较它们。某些小写字母在转换为大写时会被破坏,例如德语 ß(尽管我不确定电子邮件地址是否支持 Sharp S)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
  • 2010-12-09
  • 2017-09-03
  • 1970-01-01
  • 2012-04-27
  • 2011-05-10
  • 2011-07-25
相关资源
最近更新 更多