对我的c sharp项目进行一些用户界面限制。 使用visual studio 2008和C#.net。
所以我有一些代码,它是一个嵌套的for循环,应该遍历列行并检查是否有重复。
考虑一下我应该将文本更改为可以打印出来的数组,因为可以有多于1个副本。
简单地说,有一个零件联盟,增加一个是独特的。用户希望改变联盟的部分,有些人会更改一些。
这是我到目前为止所拥有的。
public void CheckForDuplicate()
{
DataGridViewRowCollection coll = ParetoGrid.Rows;
DataGridViewRowCollection colls = ParetoGrid.Rows;
foreach (DataGridViewRow item in coll)
{
foreach (DataGridViewRow items in colls)
{
if (items.Cells[5].Value == item.Cells[5].Value)
{
if(items.Cells[2].Value != item.Cells[2].Value)
{
txtDupe.Text = items.Cells[2].Value.ToString();
this.Refresh();
dupi = false;
}
}
}
}
}
没有任何事情发生,什么都没有,似乎总是错误的。一些奇怪的原因调试没有抓到任何东西。 所以,如果我错过了一个愚蠢的衬垫,或者如果有更好的方法可以做到,我会徘徊吗?
非常感谢!
答案 0 :(得分:0)
在LINQ中选择Distinct应该这样做。使用方法语法,如:
public bool allUniqueRows()
{
var distinctCount = from r in ParetoGrid.Rows
select r.whateverElement.Distinct().Count();
if(distinctCount == ParetoGrid.Rows.Count())
{
return true;
}
else
{
return false;
}
}