Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将类型Char[]隐式转换为字符串_C#_String_Char_Type Conversion - Fatal编程技术网

C# 无法将类型Char[]隐式转换为字符串

C# 无法将类型Char[]隐式转换为字符串,c#,string,char,type-conversion,C#,String,Char,Type Conversion,我想做以下事情,但我得到了这个 错误:未完成从类型Char[]到字符串的隐式转换 可能 有人知道如何处理这个问题吗?删除.ToArray(): 看起来您根本不需要使用.ToArray()方法。您已经在使用.ToString()方法为模式2变量赋值 只是用作 将char[]指定给字符串,这需要将char[]转换为字符串。正如错误所说,这不是隐式的,即在幕后。这样做是为了防止愚蠢的错误 您需要进行显式转换(从数组中创建一个字符串,然后分配它) 在本例中,您有一个字符串,并在将其分配给Pattern2

我想做以下事情,但我得到了这个

错误:未完成从类型Char[]到字符串的隐式转换 可能

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

删除
.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);