get unique values from dictionary<string, Ilist<Object
本文关键字:lt Ilist Object string unique dictionary get values from | 更新日期: 2023-09-27 18:02:32
我有一个字典,它的数据形式为
key , value
1 , 1 0 1
1 1 1
2 , 1 2 3
4 5 6
3 , 1 0 1
1 1 1
and so on.
我想在其他字典中获得illist的唯一值以及新键。谁能告诉我怎么做呢?
我不确定是否有比这更好的方法:
var dict = new Dictionary<string, IList<int>>();
var uniques = new Dictionary<string, IList<int>>();
foreach (var kvp in dict)
{
if(!uniques.Any(val => val.Value.SequenceEqual(kvp.Value)))
uniques.Add(kvp.Key, kvp.Value);
}
如何处理您的值作为HashSet而不是IList。然后你就可以使用相等比较器CreateSetComparer按值对字典进行分组。
var dictionary = new Dictionary<string, IList<Object>>
{
{"1", new List<object> {1, 0, 1, 1, 1, 1}},
{"2", new List<object> {1, 2, 3, 4, 5, 6}},
{"3", new List<object> {1, 0, 1, 1, 1, 1}}
};
var dictionaryHashSets = dictionary.ToDictionary(k=>k.Key, v=> new HashSet<Object>(v.Value));
var reverseDictionary = dictionaryHashSets.GroupBy(pair => pair.Value, HashSet<Object>.CreateSetComparer()).ToDictionary(gk => gk.Key, gv => gv.Select(pair => pair.Key));