У меня есть два IEnumerable
IEnumerable<MyObject> allowedObjects = MyService.GetAllowedObjects();
IEnumerable<MyOBject> preferedObjects = MyService.GetPreferedObjects();
Мы можем смело предположить, что PreredObjects всегда будет подмножеством позволенных объектов.
Я хочу создать IDictionary<MyObject, bool>
. Объекты, ключом которых является набор MyObjects из allowObjects, а bool имеет значение true, если экземпляр MyObject также был в перечисляемом PreredObjects.
Я могу сделать это, перечислив их и добавив их один за другим, но я бы хотел сделать что-то вроде этого:
IDictionary<MyObject, bool> selectedObjects = allowedObjects
.ToDictionary(o => new KeyValuePair<MyObject, bool>()
{ Key = q,
Value = preferedObjects.Any(q)
}
);
UPDATE
Обменяется с любым;
Решение, которое предлагается чаще всего, было тем, что я попробовал первым, но по какой-то причине оно не было принято:
IDictionary<MyObject, bool> selectedObjects = allowedObjects
.ToDictionary<MyObject, bool>(o => o, preferedObjects.Any(o));
Visual studio говорит, что первый метод не возвращает bool. Что верно, но главным образом потому, что bool не будет правильным результатом для начала ...
И тогда он говорит, что не может определить тип второй лямбды ...
Как вы можете видеть, я пытался явно определить типы, чтобы помочь выводу, но это ничего не решает ..
Предложения
Отказ от ответственности: имена и код сниффируются, чтобы держать фокус в нужном месте