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