c# - 来自多个数组的foreach循环c#

标签 c# arrays foreach

这应该是一个简单的问题。我只想知道是否有更好的编码方式。我想为每个数组执行一个 foreach 循环,而不必重新声明 foreach 循环。有没有办法 c# 项目这个?我在考虑将其放入收藏中...?

请批评我的代码。

        foreach (TextBox tb in vert)
        {
            if (tb.Text == box.Text)                
                conflicts.Add(tb);                
        }
        foreach (TextBox tb in hort)
        {
            if (tb.Text == box.Text)                
                conflicts.Add(tb);                
        }
        foreach (TextBox tb in cube)
        {
            if (tb.Text == box.Text)
                conflicts.Add(tb);                
        }

最佳答案

您可以使用 LINQ:

conflicts.AddRange(
    vert.Concat(hort).Concat(cube)
        .Where(tb => tb.Text == box.Text)
); 

我假设 conflictsList<TextBox> , 它有一个 AddRange方法。如果不是,您需要调用 Add在一个(单个)循环中。
如果您正在创建 conflicts , (或者如果它开始为空),你可以调用 .ToList()相反。

关于c# - 来自多个数组的foreach循环c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2950450/

相关文章:

c# - ADO.Net Entity Framework 从 XSD 文件生成模型

在 randomForest 中使用公式符号时的 R foreach 错误

javascript - foreach里面的返回值

javascript - 使用 TypeScript/Angular2 循环对象的键/值

c# - Group By 怎么可能返回重复的键?

java - 无法创建 Java 客户端并将其连接到 C# WebService

javascript - 在 Javascript 中基于语言环境的排序,以预定义的方式对重音字母和其他变体进行排序

java - Java 中写入 ASCII 0-255 的数据类型(ServletOutputStream)

c# - 覆盖 DbContext SaveChanges

java - 无法在 getInstance() 中传递 Context