![]() |
0 Всего найдено: 1
esverchkov
Сообщение
01/04/2011 15:26
Копия темы
0
Сложный вопрос программистам Недавно встала задача о реализации функции, которая бы возвращала список найденных возмещений по выплаченным переводам. Если конкретней, то нужно найти элементы, которые входят сразу в два множества. Сам программирую на C# и сделал это с помощью операции пересечения множеств (list1.Intersect(list2, comparator)). Все бы хорошо, но 40 тысяч объектов обрабатывается примерно за 90 секунд. Coparator cop = new Coparator(); List<Document> li1 = listDoc.Where(d => d.SummaDebet != "0.00").ToList(); List<Document> li2 = listDoc.Where(d => d.SummaKredet != "0.00").ToList(); li1.Intersect(li2, comparator).ToList(); Это логика сравнения: class Coparator : IEqualityComparer<Document> { public bool Equals(Document x, Document y) { if (x.TransferNumber == y.TransferNumber) { return true; } else { return false; } } public int GetHashCode(Document obj) { return obj.TransferNumber.GetHashCode(); } } Есть ли способы более быстрые, чем этот? |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |