.Net获取字典列表中最常用的值

.Net获取字典列表中最常用的值,.net,linq,dictionary,lambda,.net,Linq,Dictionary,Lambda,我到处找stackoverflow,这种问题从来没有被问过,所以我决定问它,我想出了解决办法,所以我不妨把它贴在答案部分 假设您得到一个唯一的函数地址作为键值,该值可能是一个普通值,也可能是随机值。。你想用最常用的值来提取所有的键地址值,还想单独得到最常用的值,以便进一步处理 下面是我如何解决它的 var MostCommonDictionaryValuesFirst = PersonalCraft_SubOffset1_FunctionAddress.GroupBy(_ =&

我到处找stackoverflow,这种问题从来没有被问过,所以我决定问它,我想出了解决办法,所以我不妨把它贴在答案部分

假设您得到一个唯一的函数地址作为键值,该值可能是一个普通值,也可能是随机值。。你想用最常用的值来提取所有的键地址值,还想单独得到最常用的值,以便进一步处理

下面是我如何解决它的

        var MostCommonDictionaryValuesFirst = PersonalCraft_SubOffset1_FunctionAddress.GroupBy(_ => _.Value).OrderByDescending(_ => _.Count()).SelectMany(_ => _);

仍然不知道如何从字典列表(即Int数组)中删除不常见的值。。我需要一个多元素数组字典,怎么了?它与您所做的操作完全相同-只要您可以对dict进行分组,dict所具有的值并不重要-并且无论是int还是class instance等等,所要做的事情都是相同的。那里的解决方案与您发布的解决方案完全相同:groupby、OrderBy、count。。。
//Get most common value first
var GetMostCommonValue = PersonalCraft_SubOffset1_FunctionAddress.GroupBy(_ => _.Value).OrderByDescending(_ => _.Count()).SelectMany(_ => _).First().Value;

//Get a list of diction values that occur most common first.
var MostCommonDictionaryValuesFirst = PersonalCraft_SubOffset1_FunctionAddress.GroupBy(_ => _.Value).OrderByDescending(_ => _.Count()).SelectMany(_ => _);

//This gives you a nice list of all most common addresses.
var GetMostCommonAddresses = PersonalCraft_SubOffset1_FunctionAddress.Where(t => t.Value == GetMostCommonValue).ToList();
//This has a sorted list of most common first.. but still needs to remove non-most common from list.. so needs work
var GetMostCommonFirst = PersonalCraft_SubOffset1_FunctionAddress.GroupBy(_ => _.Value).OrderByDescending(_ => _.Count()).SelectMany(_ => _);