Сравнение содержимого списка <int>для поиска совпадений - PullRequest
2 голосов
/ 19 августа 2011

Для небольшого кода, который я пишу, у меня есть метод, который проверяет новый объект на наличие похожих свойств со всеми существующими объектами.

Этот метод возвращает Dictionary<int, List<int>>.Их ключом является уникальный идентификатор объекта, а список содержит свойства, схожие с новым объектом.(Constant.Name, Constant.StartDt и т. Д.).

Теперь существует несколько различных типов совпадений, которые не могут быть выполнены.Мне нужен способ сравнить различные комбинации совпадений с тем, что есть в этих списках, и мне нужно знать, какое совпадение было найдено.

Поэтому я думал о создании списка для каждого совпадения и сравнении каждого списка с возвращенным списком свойств.Тем не менее, я знаю, что я делал нечто подобное раньше в Java, и у него был недостаток - он соответствовал по порядку ... Мне просто нужно знать, СОДЕРЖИТ ли каждый список эти элементы.*

  1. Это лучший способ найти совпадения?
  2. Если да, то какой метод вы предлагаете?Перебрать их?Или что-то встроено в C #, и я не в курсе?

1 Ответ

9 голосов
/ 19 августа 2011

Вы можете использовать метод пересечения LINQ:

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.intersect.aspx

        int[] id1 = { 44, 26, 92, 30, 71, 38 };
        int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };

        IEnumerable<int> both = id1.Intersect(id2);

        foreach (int id in both)
            Console.WriteLine(id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...