首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在跳过自身时检查其他元素是否与表达式匹配的Linq方法

在跳过自身时检查其他元素是否与表达式匹配的Linq方法
EN

Stack Overflow用户
提问于 2017-10-18 16:52:42
回答 1查看 85关注 0票数 1

在我的项目中,我将单元格(在我的例子中是TextBlock控件)组织到名为boxes的列表中。每个盒子都有9个细胞。是否有一种方法可以比较这些列表中的所有单元元素,如果其中任何元素与我指定的表达式匹配,则返回true?对于我在遍历单元格列表时所做的每一次比较,我需要确保在进行比较时,给定的单元格不会考虑到自己。这样,它就不会考虑自己的价值,因此我试图在下面编写lambda语句。我知道第一个()和一个()返回单个元素,所以我怀疑是我的lambda导致了这个问题。我使用以下代码:

代码语言:javascript
运行
复制
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值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-18 16:59:25

您可以像这样使用Any。这将告诉您,框中是否包含具有相同Text值的内容,但它与cell的内容不同(可能是引用的,但这取决于cell是什么)。

代码语言:javascript
运行
复制
if(box.Any(e => e.Text == cell.Text && e != cell)){
    cell.Text = somethingDifferent;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46815369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档