Not exactly sure what are the preferred results, but could you use something like:
Dictionary<string,List<int>> namesInfo
= new Dictionary<string,List<int>>() {
{"howard", new List<int> {{5}, {5}, {2}, {4}}},
{"John", new List<int>{{1},{2},{3},{5}}}
};
var list4 = from l in namesInfo.Where(a=>a.Value.Contains(4))
select new {
l.Key
};