What I do in situations like this, is to store the controls that I want to manipulate frequently into a List or preferably an IEnumerable<> collection, which I normally initialize at construction or in the Load event handler of the containing control (e.g., if these controls are contained in a Form, or are enclosed in a GroupBox). By doing this, I hope to reduce the hit of having to find these controls every time I need this collection. If you only need to do this once, I wouldn't bother adding the buttons collection.
So, something like this:
// the collection of objects that I need to operate on,
// in your case, the buttons
// only needed if you need to use the list more than once in your program
private readonly IEnumerable<Button> buttons;
In the constructor or load event handler:
this.buttons = this.Controls.OfType<Button>();
And then, whenever I need to update these controls, I just use this collection:
foreach (var button in this.buttons)
{
button.Text = @"---";
// may wanna check the name of the button matches the pattern
// you expect, if the collection contains other
// buttons you don't wanna change
}