C# 比较字符串和字符时使用tocharray()或ToString()更好吗?

C# 比较字符串和字符时使用tocharray()或ToString()更好吗?,c#,C#,我需要检查字符串是否等于特定字符 现在我是这样做的: if (InputData.ToCharArray()[0] == 0x18) InputData是一个字符串,每当我在代码中达到这个点时,它应该总是只有一个字符长 我的问题是,在其他方面是否比比较好?例如: if (InputData == ((char)0x1c).ToString()) string InputData = "..."; if(InputData.Length == 1 && InputData[0]

我需要检查字符串是否等于特定字符

现在我是这样做的:

if (InputData.ToCharArray()[0] == 0x18)
InputData
是一个字符串,每当我在代码中达到这个点时,它应该总是只有一个字符长

我的问题是,在其他方面是否比比较好?例如:

if (InputData == ((char)0x1c).ToString())
string InputData = "...";
if(InputData.Length == 1 && InputData[0].Equals(0x18))

你可以这样做:

string InputData = "...";
if (InputData.Length == 1 && InputData[0] == 0x18)

有很多方法可以做到这一点,例如:

if (InputData == ((char)0x1c).ToString())
string InputData = "...";
if(InputData.Length == 1 && InputData[0].Equals(0x18))

该代码给了我以下错误:错误1“string”不包含“InputData”的定义,并且找不到接受“string”类型的第一个参数的扩展方法“InputData”(是否缺少using指令或程序集引用?)。错误告诉我您正在尝试调用方法
some\u string.InputData
。我的回答中没有这样的调用。要详细说明Dmitry的回答为什么有效,您不需要调用
ToCharArray
,因为System.String有一个名为的索引属性,它允许直接访问组成字符串的字符
ToCharArray
用于将字符串传递给显式需要
char[]
的方法。