在我的项目中,我将单元格(TextBlock控件,在我的例子中)组织成名为boxes的列表。每个盒子有9个细胞。有没有办法比较这些列表中的所有单元格元素,如果任何它们与我指定的表达式匹配,则返回true?对于我在迭代单元格列表时所做的每个比较,我需要确保给定的单元格在进行比较时不会考虑自己。这样,它理所当然地不会考虑它自己的值,因此我尝试在下面写的lambda语句。我知道First()和Single()返回单个元素,所以我怀疑是我的lambda引起了问题。我正在使用以下代码:
while (cell.Text == box.SkipWhile(e => e == cell).First().Text)
{
// change cell.Text's value here as long as any other cell's
// .Text value is the same
}
即使这个编译,踩过代码似乎更频繁地跳过while语句,而且我仍然在同一个框中的单元格之间获得相同的.Text值。
答案 0 :(得分:2)
您可以像这样使用Any
。这会告诉您框中是否包含具有相同Text
值的内容,但它与cell
相同的项目(可能是参考,但这取决于cell
是)
if(box.Any(e => e.Text == cell.Text && e != cell)){
cell.Text = somethingDifferent;
}