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++;
}
}