У меня есть следующий сценарий:Linq, фильтр и поиск с использованием сложной структуры класса
public class Term{
private int _family;
public void setFamily(int family){
_family = family;
}
public int getFamily(){
return _family
}
}
public class Document{
private List<Term> _terms_in_document;
public void addTerm(Term t){
_terms_in_document.add(t);
}
}
в другом классе ...
Term t1 = new Term();
t1.setFamily(1);
Term t2 = new Term();
t2.setFamily(1);
Term t3 = new Term();
t3.setFamily(1);
Document d1 = new Document();
d1.addTerm(t1);
d1.addTerm(t2);
d1.addTerm(t3);
Term t4 = new Term();
t4.setFamily(1);
Term t5 = new Term();
t5.setFamily(2);
Term t6 = new Term();
t6.setFamily(3);
Document d2 = new Document();
d2.addTerm(t4);
d2.addTerm(t5);
d2.addTerm(t6);
Мне нужно использовать LINQ, чтобы получить те документы, которые содержат с наибольшим количеством разных семей. В нашем примере d2 будет первым, потому что это термины из семейств 1, 2 и 3. Хотя d1 должен стать вторым, потому что все его термины принадлежат к одному и тому же семейству. Я не мог сделать это до сих пор с linq, я считаю, что это можно сделать без него, но это будет очень сложный и подверженный ошибкам код. Не могли бы вы помочь мне ..
Является ли ваш прошлый опыт в Java? Почему вы не используете авто-свойство, которое создало бы для вас геттер? Вся ваша семейная вещь может быть «public int Family {get; set;}» –
Прежде всего вам нужно выставить элементы «Term», которые вы добавляете в класс «Document». Предпочтительно, используя «IEnumerable», если вы хотите использовать Linq –
juharr