在c#中使用Except关键字

时间:2016-11-27 09:53:20

标签: c# linq

我第一次在c#中使用except关键字,而且我一直在努力解决这个问题。如果可能的话,请你看看我的功能,让我知道我错在哪里。

我需要返回数组字符串。 indivEmails1和indivEmails2包含一系列电子邮件ID。我需要返回一个不在indivEmails2中但不在indivEmails1中的电子邮件ID。但它必须是数组的字符串。

public string[] getNewCCEmailsIDs(WorkOrderModel model)
{
    string[] emailids = null;
    var result = _db.WorkOrders
        .Where(w => w.idWorkOrder == model.idWorkOrder && w.idCompany == model.idCompany)
        .Select(w => new {w.Status, w.ExternalEmails});
     if (dbItem.Status == (int) WorkOrderStatus.Approved )
    {
        string NewCCEmail = "";
        var comEmails1 = dbItem.ExternalEmails.Trim(';');
        string[] indivEmails1 = comEmails1.Split(';');

        string comEmails2 = model.ExternalEmails.Trim(';');
        string[] indivEmails2 = comEmails2.Split(';');


        IEnumerable<string> emailsToAdd = indivEmails2.Except(indivEmails1);

        //NewCCEmail = emailsToAdd;
        }

        if (NewCCEmail != "") // when client delete an email id from CC and press save.
            emailids = NewCCEmail.Split(';');
    }
    return emailids;
}

我收到以下错误。我看了eveywhere但没有运气。

Error   54  Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<string>' to 'string[]'. An explicit conversion exists (are you missing a cast?)  C:\Users\Bakul\Documents\GitHub\Maxpanda\Maxpanda\Controllers\WorkOrderController.cs    930 25  Maxpanda

非常感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:1)

使用ToList()

 List<string> emailsToAdd = indivEmails2.Except(indivEmails1).ToList();

答案 1 :(得分:0)

谢谢大家。将代码更改为下方并且有效。

string [] emailsToAdd = indivEmails2.Except(indivEmails1).ToArray();

相关问题