如何检查Button.Tag的首字母?

时间:2019-04-02 17:48:24

标签: c#

因此,我在代码按钮中订购了带标签的标签,标签的第一个字母决定了它是一组按钮还是另一组按钮。 我需要检查一个按钮是否在一个或另一个组中,并且我试图像正常字符串那样检查标签的第一个字母 ((Button)sender).Tag[0] == 'W'((Button)sender).Tag.FirstOrDefault() == 'W',但是代码给了我一个错误。我想念什么?

2 个答案:

答案 0 :(得分:3)

在WPF和Winforms中,Tag都声明为object。因此,您需要将其转换为字符串:

var button = ((Button)sender);
var tagString = (string)button.Tag;
if (tagString[0] == 'W') ...

如果不确定Tag是否始终是字符串,则可以使用as-cast:

var button = ((Button)sender);
var tagString = button.Tag as string;
if (tagString != null && tagString[0] == 'W') ...

或在C#7中,您还可以使用模式匹配:

var button = ((Button)sender);
if (button.Tag is string tagString && tagString[0] == 'W') ...

答案 1 :(得分:1)

您必须转换为字符串并与字符串进行比较,因为Tag是一个对象