想要比较分裂的字符串[]如果它存在于List <keyvaluepair <string,string =“”>&gt; myList中</keyvaluepair <字符串>

时间:2013-01-17 17:05:48

标签: c# list

我希望比较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}}
{{1}}

}

2 个答案:

答案 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;
    }

}