C# 无法将类型Char[]隐式转换为字符串
我想做以下事情,但我得到了这个 错误:未完成从类型Char[]到字符串的隐式转换 可能 有人知道如何处理这个问题吗?删除C# 无法将类型Char[]隐式转换为字符串,c#,string,char,type-conversion,C#,String,Char,Type Conversion,我想做以下事情,但我得到了这个 错误:未完成从类型Char[]到字符串的隐式转换 可能 有人知道如何处理这个问题吗?删除.ToArray(): 看起来您根本不需要使用.ToArray()方法。您已经在使用.ToString()方法为模式2变量赋值 只是用作 将char[]指定给字符串,这需要将char[]转换为字符串。正如错误所说,这不是隐式的,即在幕后。这样做是为了防止愚蠢的错误 您需要进行显式转换(从数组中创建一个字符串,然后分配它) 在本例中,您有一个字符串,并在将其分配给Pattern2
.ToArray()
:
看起来您根本不需要使用
.ToArray()
方法。您已经在使用.ToString()
方法为模式2
变量赋值
只是用作
将char[]指定给字符串,这需要将char[]转换为字符串。正如错误所说,这不是隐式的,即在幕后。这样做是为了防止愚蠢的错误 您需要进行显式转换(从数组中创建一个字符串,然后分配它) 在本例中,您有一个字符串,并在将其分配给Pattern2之前将其转换为数组。只是不要将字符串转换为数组
string Pattern2 = (Convert.ToDateTime(currMail.CreationTime).ToString(" dd-MMM-yyyy HH-mm"));
正如其他答案所指出的,您对
ToArray
的调用不仅仅是不必要的,在这种情况下,它是有害的。您已经有一个字符串在手,您需要一个字符串,所以不要将该字符串转换为字符数组;用绳子就行了
但是,对于将来的参考,可以将字符数组转换为字符串,而不是通过隐式或显式转换。其语法是:
char[] characters = whatever;
string str = new String(characters);
最后,文档如下所示:
初学者应熟悉本文档;里面有很多好东西。删除
.ToArray()
调用。它应该在做什么?实际上,您正在调用一个方法.ToString()
,并且您想要分配给一个字符串。我无法想象额外的.ToArray()
对任何人来说都是“OK”的。呃,也许对初学者来说:)你说的“ToString()和你想分配给字符串”是什么意思?我应该把它变成一个带大S的字符串吗?@gbbb:字符串和系统。字符串
是别名;没什么区别。你知道为什么@Soner Gonul告诉我我做错了什么,因为我把ToString()赋值给了一个字符串吗?@gbb-他建议你像我一样去掉。ToArray
。简而言之,您正在将CreationTime
转换为DateTime
对象,然后将其解析为string
——这很好,因为Pattern2
属于string
类型,不需要调用.ToArray()
。
string Pattern2 = Convert.ToDateTime(currMail.CreationTime).ToString("dd-MMM-yyyy HH-mm");
string Pattern2 = Convert.ToDateTime(currMail.CreationTime).ToString(" dd-MMM-yyyy HH-mm");
string Pattern2 = (Convert.ToDateTime(currMail.CreationTime).ToString(" dd-MMM-yyyy HH-mm"));
char[] characters = whatever;
string str = new String(characters);