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

Mik*_*ike 2 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);                
        }
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 12

您可以使用LINQ:

conflicts.AddRange(
    vert.Concat(hort).Concat(cube)
        .Where(tb => tb.Text == box.Text)
); 
Run Code Online (Sandbox Code Playgroud)

我假设那conflicts是一个List<TextBox>AddRange方法的.如果不是,则需要调用Add(单个)循环.
如果你正在创建conflicts,(或者如果它开始为空),你可以.ToList()改为打电话.