【问题标题】:How to compare a string to the different arguments of an object in a array of object?如何将字符串与对象数组中对象的不同参数进行比较?
【发布时间】:2013-09-10 12:22:53
【问题描述】:

我有一个对象数组联系人。每个联系人都有 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 与 数组中每个对象的 namefunction。由于数组是我不能使用 indexOf 的对象之一。有人有解决方案吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多