这应该是一个简单的问题.我想知道的是,是否有更好的编码方式.我想为每个数组做一个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()改为打电话.