Отфильтруйте список linq на значении свойства

_id в mongoDb обычно представляет собой ObjectId, который представляет собой шестнадцатеричный уникальный ключ из 24 символов.

Вы можете преобразовать строку _id в ObjectId и затем запросить

[{"$match":{"_id":{"$nin":[ObjectId("5c7bb1d08f999f326151df49"),ObjectId("5c7bb1d08f999f326151df49")]},"category":{"$in":["Test"]}}},{"$sample":{"size":1}}]
18
задан Espo 1 September 2008 в 12:02
поделиться

4 ответа

var result = from o in objList where intList.Contains(o.ID) select o
16
ответ дан 30 November 2019 в 06:39
поделиться

Непротестированный, но это будет что-то вроде этого:

var matches = from o in objList 
                  join i in intList on o.ID equals i
                  select o;

@Konrad просто протестировал его, и это действительно работает - у меня просто была опечатка, где я записал "меня. Идентификатор", а не "i".

6
ответ дан 30 November 2019 в 06:39
поделиться

Только для полноты (и возможно легче читать?), с помощью, "где" подобный "соединению" Matt:

var matches = from o in customObjectList
              from i in intList
              where o.ID == i
              select o;
2
ответ дан 30 November 2019 в 06:39
поделиться

У меня только что была похожая проблема, и я использовал решение ниже. Если у вас уже есть список объектов, вы можете удалить все, что не найдено в списке int, оставив только совпадения в objList.

objList.RemoveAll(x => !intList.Contains(x.id));
10
ответ дан 30 November 2019 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: