0

string[] splittedに存在するかどうかを比較しようとしていますList<KeyValuePair<string, string>> myList。そうでない場合はList<string>、メールアドレスの別のリストとして追加します.

LINQ を使用するのが良い選択肢かもしれません。実装を手伝ってください。

myListstring[] splittedに存在するかどうかを比較しようとしています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));

    }
  }

}

4

2 に答える 2

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();
}
于 2013-01-17T17:14:25.807 に答える
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;
    }

}

于 2013-01-17T17:46:24.640 に答える