2013-09-10 2 views
0

У меня есть массив объектов Контакт. Каждый Контакт имеет 3 аргумента:Как сравнить строку с различными аргументами объекта в массиве объектов?

  • Id
  • Имя
  • Функция

Я создаю этот массив в этой функции:

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); 
    } 

Теперь я хотел бы для сравнения строки термин введен как параметр в функции имя и функция каждого объекта массива. Поскольку массив является одним из объектов, я не могу использовать indexOf. У кого-нибудь есть решение сделать это?

ответ

1

Вы можете использовать string.Contains на объекте Contact, так как вы используете Linq. Предполагая, что имя и функция являются строками.

var filteredItems = collaborateurs.Where(
      item => item.Name.Contains(term) || item.Name.Function.Contains(term) 
      ); 
Смежные вопросы