C#构建一个带有按钮条目的数组

时间:2009-11-20 01:20:23

标签: c# arrays button

我有一组按钮,我想将它们添加到一个数组中,以便对它们进行排序。我拥有的按钮是:

Monday0700Button
Monday0730Button
Monday0800Button
Monday0830Button

等等。

如何将一个按钮添加到一个数组中,然后对它们进行排序,以便稍后我可以使用此命令进行不同的使用。

感谢。

6 个答案:

答案 0 :(得分:2)

听起来像SortedDictionary<string, Button>会填补这笔费用。

SortedDictionary<string, Button> buttons 
                 = new SortedDictionary<string, Button>();
buttons.Add(btn1.Name, btn1);
buttons.Add(btn2.Name, btn2);

foreach (string name in buttons.Keys)
{
  Button b = buttons[name];
  // iterates in name order
}

根据您选择的排序方式更改您使用的密钥。

答案 1 :(得分:1)

您可以将它们全部放在列表中,然后按ID排序:

List<Button> buttonList = new List<Button>();
buttonList.Add(Monday0700Button);
buttonList.Add(Monday0730Button);
buttonList.Add(Monday0800Button);
buttonList.Add(Monday0830Button);
buttonList.Sort((l,r) => l.ID.CompareTo(r.ID));

答案 2 :(得分:0)

SortedList<TKey, TValue>应该做到这一点。其中TKey是您要订购的按钮的属性,TValue是您的按钮类型。

答案 3 :(得分:0)

您只需创建一个有序的按钮集合,例如:

List<Button> lst

如果添加这些元素的顺序不是您想要的顺序,则可以使用方法Sort()。

如果您想保留与按钮相关的其他信息,请使用其Tag属性并在排序时使用它。

答案 4 :(得分:0)

您可以使用现有按钮创建一个数组。

var array = new[] {Monday0700Button,Monday0730Button,Monday0800Button,Monday0830Button};

答案 5 :(得分:0)

您如何定义订单?如果您的订单是由“设置数组的顺序”定义的,那么数组(或列表)就足够了。

如果你想要一个不同于你开始的顺序,那么你可以看看排序。