Dictionary<int, int> abc
abc.add[1,1]
abc.add[2,2]
abc.add[3,1]
abc.add[4,3]
abc.add[5,1]
abc.add[6,4]
abc的key1-6 这个是没有重复的,怎么样判断 abc.value的重复值,
每次点击but提示出 value的对应项key重复 例如: 1和3和5 是重复的,注:每次点击but只能提示一个项重复(第1个key),再点击则提示下一项重复(第3个key), 然后是第5的key, 再点击则从再次循环。
判断重复值是实现了,但是不知道怎么样实现每次点击循环提示
var valueDup = from item in abc.Values
group item by item into valueGroup
where valueGroup.Count() > 1
select valueGroup;
foreach (var item in valueDup)
{
MessageBox.Show(“重复的key是:” + item.Key.ToString());
}
abc.add[1,1]
abc.add[2,2]
abc.add[3,1]
abc.add[4,3]
abc.add[5,1]
abc.add[6,4]
abc的key1-6 这个是没有重复的,怎么样判断 abc.value的重复值,
每次点击but提示出 value的对应项key重复 例如: 1和3和5 是重复的,注:每次点击but只能提示一个项重复(第1个key),再点击则提示下一项重复(第3个key), 然后是第5的key, 再点击则从再次循环。
判断重复值是实现了,但是不知道怎么样实现每次点击循环提示
var valueDup = from item in abc.Values
group item by item into valueGroup
where valueGroup.Count() > 1
select valueGroup;
foreach (var item in valueDup)
{
MessageBox.Show(“重复的key是:” + item.Key.ToString());
}
请高手能给个提示,或给段代码。谢谢
解决方案
5
没有测试过,差不多就是这么回事。
Dictionary<int, int> abc = new Dictionary<int, int>(); 方法外全局变量 Count=0; abc.Add(1, 1); abc.Add(2, 2); abc.Add(3, 1); abc.Add(4, 3); abc.Add(5, 1); abc.Add(6, 4); var q = abc.GroupBy(x => x.Value).Where(x=>x.Count()>1).Select(x => new { Key=x.Key, Count=x.Count() }).ToList(); Count=q-Count; for(int i=0;i<Count;i++){Console.WriteLine(q[i].Key+"--"+q[i].Count);Count-i;}
15
List<xxx> list; int i=0;//这两个是全局变量 你执行linq的那段代码方法() { list= valueDup.ToList(); i=0; } 点击事件() { if(list.Count-1>i) { var item = list[i]; MessageBox.Show("重复的key是:" + item.Key.ToString()); i++; } }