所以我正在学校的一个项目,我必须编写一个代码,可以找到成对的2,3,4等...我已经知道如何找到2,3对等的对象:
for (int i = 0; i < list.Count; i++)
{
for (int j = 0; j < list.Count; j++)
{
if (list[i].Efternamn == list[j].Efternamn && i != j)
{
textBox4.Text = "A pair was found!";
break;
}
else
{
textBox4.Text = "No pairs!";
}
}
}
但是代码有点重复......有没有其他方法可以在没有多个for循环的情况下以有效的方式找到100或200对?
答案 0 :(得分:1)
答案 1 :(得分:0)
不确定它是否在你的情况下作弊,但很容易用Linq完成。在这种情况下,Linq在内部使用字典(最有可能)。
var valuesAndCounts = list
.GroupBy(x => x)
.Select(g => new {Value=g.Key, Count=g.Count()})
.Where(p => p.Count > 1); // or == 2 or == 100 etc