我希望比较string[] splitted
List<KeyValuePair<string, string>> myList
是否存在List<string>
。如果没有,那么我会将其作为单独的电子邮件地址列表添加到string[] splitted
。
使用LINQ可能是一个不错的选择,请帮助实现。
希望比较List<KeyValuePair<string, string>>
public void SendEmails(String esmails)
{
//splitting email string
string[] splitted = esmails.Emails.Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
List<KeyValuePair<string, string>> myList = new List<KeyValuePair<string, string>>();
foreach (var email in GetEmails)
{
for (int i = 0; i < splitted.Count(); i++)
{
if (email.EmailAddress.Equals(splitted[i].Replace(";","")))
myList.Add(new KeyValuePair<string, string>(email.IdentificationNo, email.EmailAddress));
}
}
myList
{{1}}
}
答案 0 :(得分:0)
如果可能,使用隐式类型变量(var)
您可以使用join
来实现此目的public void SendEmails(String esmails)
{
//splitting email string
var splitted =
esmails.Split(new []{System.Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)
.Select(s => s.Replace(";", ""));
var matchings =
from s in splitted
join email in GetEmails on email.EmailAddress equals s
select new KeyValuePair<string, string>(email.IdentificationNo, email.EmailAddress);
var myList = matchings.ToList();
}
答案 1 :(得分:0)
public void SendEmails(String esmails)
{
List<String> split = esmails.Split(new String[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Replace(";", "")).ToList();
Dictionary<Int32, String> dictionary = new Dictionary<Int32, String>();
foreach (Email email in GetEmails())
{
foreach (String address in split)
{
if (email.EmailAddress.Equals(address))
dictionary[email.IdentificationNo] = email.EmailAddress;
}
}