不支持从Char[]类型隐式转换为字符串

本文关键字:转换 字符串 类型 Char 不支持 | 更新日期: 2023-09-27 18:14:08

我想做以下操作,但我得到了这个

错误:从Char[]类型到string类型的隐式转换不存在可能的。

string Pattern2 = (Convert.ToDateTime(currMail.CreationTime).ToString(" dd-MMM-yyyy HH-mm")).ToArray();

有人知道如何处理这个问题吗?

不支持从Char[]类型隐式转换为字符串

删除.ToArray():

string Pattern2 = Convert.ToDateTime(currMail.CreationTime).ToString("dd-MMM-yyyy HH-mm");

正如其他答案所指出的那样,您对ToArray的调用不仅是不必要的,而且在这种情况下是有害的。你已经有了一个字符串,你需要一个字符串,所以不要把字符串转换成char数组;只使用字符串

但是,对于您将来的引用,可以将char数组转换为字符串,而不是通过隐式或显式转换。语法是:

char[] characters = whatever;
string str = new String(characters);

最后,文档在这里:

http://msdn.microsoft.com/en-us/library/vstudio/s1wwdcbf.aspx

初学者应该熟悉这个文档;里面有很多好东西

看起来你根本不需要使用.ToArray()方法。您已经使用.ToString()方法来分配您的Pattern2变量。

直接用as;

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[]赋值给字符串,这需要将char[]转换为字符串。正如错误所说,这不是隐式地完成的,即在幕后。这样做是为了防止愚蠢的错误。

你应该做一个显式的转换(从数组创建一个字符串,然后赋值)。

在您的情况下,您有一个字符串,并将其转换为数组,然后将其分配给Pattern2。只是不要将字符串转换为数组。

string Pattern2 = (Convert.ToDateTime(currMail.CreationTime).ToString(" dd-MMM-yyyy HH-mm"));