2013-01-17 20 views
0

如果它存在於List<KeyValuePair<string, string>> myList中,我期待比較string[] splitted。如果不是,我會將它作爲單獨的電子郵件地址列表添加到List<string>期望比較字符串[]如果它存在於列表中<[KeyValuePair <string,string >> myList

使用LINQ可能是一個不錯的選擇,請幫助實施。

看它是否在List<KeyValuePair<string, string>> myList中

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)); 

    } 
    } 

}

+0

您的代碼無法編譯。 'esmails'被聲明爲字符串,但是像這樣'esmails.Emails.Split(...)'被訪問。但'String'沒有'Emails'成員。 –

回答

0

使用隱式類型變量(VAR)存在比較string[] splitted如果可能的話

您可以通過加入

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(); 
} 
實現這一目標
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; 
    } 

}

相關問題