如何将字符串与对象数组中对象的不同参数进行比较?

时间:2013-09-10 12:22:53

标签: arrays c#-4.0 asp.net-mvc-4 object compare

我有一个对象联系人的数组。每个联系人都有3个参数:

  • 编号
  • 名称
  • 功能

我正在该函数中创建该数组:

public ActionResult AutocompleteCollabo(string term)
    {
        int NumDossier = StructureData.DonneNumDossier((string)Session["NumCRPCEN"], (string)Session["MotDePasse"]);
        List<Contact> ListeContacts = StructureData.DonneListeElementDossier(NumDossier);
        Contact[] tabContacts = new Contact[ListeContacts.Count()];
        int count = 0;
        foreach (Contact contact in ListeContacts)
        {
            tabContacts[count] = contact;
            count++;
        }
        var collaborateurs = tabContacts;

        var filteredItems = collaborateurs.Where(
            item => item.IndexOf(term, StringComparison.InvariantCultureIgnoreCase) >= 0
            );
        return Json(filteredItems, JsonRequestBehavior.AllowGet);
    }

现在我想比较函数中作为参数输入的字符串 term 数组中每个对象的名称函数。由于数组是对象之一,我无法使用 indexOf 。有人有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

由于您使用的是Linq,因此您可以在Contact对象上使用string.Contains。假设名称和函数都是字符串。

var filteredItems = collaborateurs.Where(
            item => item.Name.Contains(term) || item.Name.Function.Contains(term)
            );