我有以下代码,它正在工作

public async Task<ActionResult> GetUsersWithFax(List<int> userIds)
        {
            Dictionary<int,Address> userAddresses = await _service.GetUserAddresses(userIds);
            Dictionary<int, bool> usersHaveFax = new Dictionary<int, bool>();
            foreach (var userId in userIds)
            {
                usersHaveFax.Add(userId,
                    userAddresses.ContainsKey(userId) &&
                    userAddresses[userId].HasFax());
            }
            return usersHaveFax;
        }


但是,我正在寻找一种更多的linq方式来实现这一目标。
算法如下


将一本字典映射到另一本
使用默认bool值添加缺少的键(false)


我将不胜感激任何帮助。

最佳答案

尝试以下

usersIds.ToDictionary(v => v, v => userAddresses.ContainsKey(v) && userAddresses[v].HasFax())

10-02 07:45