查询需要返回Result2列表中Result2中不存在的所有项目

时间:2013-01-17 18:35:00

标签: c# list

public List<Model_Result> GetEsEmails { get; set; }

您好:

我的查询需要返回splitted1列表中的所有项目,其中EmailEs不存在于GetEsEmails中。

请帮助您使用语法。

public void SenDEmail(string esemails)
{
//splitting email string 
      var splitted1 = esmails.Emails.Split(new string[] { System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Replace(";",""));

  List<KeyValuePair<string, string>> myList = new List<KeyValuePair<string, string>>();


    var result1 = splitted1
          .Where(x => GetEsEmails.All(email => x != email.EmailAddress))
          .ToList();

}

谢谢你, urpalshu

2 个答案:

答案 0 :(得分:1)

LINQ的。我爱Linq?你不喜欢Linq吗? Linq有ExceptExcept很有趣。

var addressesToIgnore = GetEsEmails.Select(email => email.EmailAddress);
var results = splitted1.Except(addressesToIgnore );

请注意第一行,它只将EmailAddress属性提取为IEnumerable。然后第二行返回一个新的IEnumerable,其中只包含splitted1以外的addressesToIgnore成员;

答案 1 :(得分:0)

如果我理解正确,您可能希望这样做: “我想要来自splitted1的那些x字符串,其中GetEsEmails包含任何a.Email等于x的元素<”

    var result1 = splitted1
              .Where(x => !GetEsEmails.Any(a=>a.Email==x))
              .ToList();