C# 无法将类型“char[]”隐式转换为“string[]”
strArr是完整的字符串,我正在拆分它以获得不同的标题n date,但我希望它们位于字符串数组中。我申请的那一刻。 ToArray{in string[]titl=item.Title.ToArray;} 错误消息 {无法将类型“string”隐式转换为“string[]”更改为 {无法将类型“char[]”隐式转换为“string[]” 。类数据中的所有内容也是字符串类型C# 无法将类型“char[]”隐式转换为“string[]”,c#,asp.net,string,char,C#,Asp.net,String,Char,strArr是完整的字符串,我正在拆分它以获得不同的标题n date,但我希望它们位于字符串数组中。我申请的那一刻。 ToArray{in string[]titl=item.Title.ToArray;} 错误消息 {无法将类型“string”隐式转换为“string[]”更改为 {无法将类型“char[]”隐式转换为“string[]” 。类数据中的所有内容也是字符串类型 public class Data { public string Date { ge
public class Data
{
public string Date
{
get;
set;
}
public string Title
{
get;
set;
}
}
string xml1 = Search();
字符串[]strArr=xml1.Split'|'
int i,j;
Data item = new Data();
for (i = 0; i < strArr.Count(); i = i + 2)
{
if (strArr[i].ToString() != "")
{
item.Title = strArr[i];
string[] titl = item.Title.ToArray();
}
}
for (j = 1; j < strArr.Count(); j = j + 2)
{
item.Date = strArr[j];
string[] Dat = item.Date.ToArray();
}
字符串上的ToArray方法提供字符数组。可以使用linQ select方法将字符选择为字符串
string[] titl = item.Title.Select(c=>c.ToString()).ToArray();
您可能需要重新考虑,如果您想要字符串数组或字符数组,就像想要字符数组一样,那么您需要将标题数组的声明从string更改为char
对字符串调用.ToArray将返回char[],而不是string[]。这两种类型之间没有隐式转换
要使此工作正常,请尝试以下操作:
string[] titl =
item.Title.ToCharArray().Select(c => c.ToString()).ToArray();
var xml1 = "X|A|Y|B|Z|C|W|D";
var strArr = xml1.Split('|');
var items =
strArr.Where((x, n) => n % 2 == 0)
.Zip(
strArr.Where((x, n) => n % 2 == 1),
(t, d) => new Data()
{
Title = t,
Date = d
})
.ToArray();
根据您在下面的评论,尝试以下操作:
string[] titl =
item.Title.ToCharArray().Select(c => c.ToString()).ToArray();
var xml1 = "X|A|Y|B|Z|C|W|D";
var strArr = xml1.Split('|');
var items =
strArr.Where((x, n) => n % 2 == 0)
.Zip(
strArr.Where((x, n) => n % 2 == 1),
(t, d) => new Data()
{
Title = t,
Date = d
})
.ToArray();
我得到这个结果:
返回一个字符类型数组
由于您需要所有标题和日期,您应该有一个类型数据数组:
您不再需要2个for循环。您还没有向我们展示strArray的声明,这没有任何帮助。这是一个字符串,还是一堆字符串?@JonSkeet OP说它是字符串类型。如果你正在使用字符串,为什么要调用ToArray?你想处理单个字符吗?为什么你首先希望它是一个数组?首先,这是一个令人困惑的名称。接下来,您如何期望strArray[i].ToString为空字符串?你期望strArray[i]是什么?我不认为OP真的希望每个字符都是字符串。@YuvalItzchakov-我想这就是他想要的。或者你是说你认为他只需要一个字符串数组?我认为OP实际上有某种需要拆分的分隔字符串。@Nancy-它没有返回字符。我已经测试了这段代码。它会这样做:ABC=>{A,B,C}-不是{A',B',C}。@Enigmativity谢谢,我会尝试其他方法:这不起作用,我已经尝试过了。你能解释一下什么不起作用吗,因为我用answerstring[]titl=item.Title中的第二条语句得到char数组。选择C=>C.ToString.ToArray;正在返回字符数组,但我需要字符串数组。它正在返回字符串数组,否则将无法编译。您可以通过titl.GetTypeData.length检查类型ot titl是否为字符串数组。Data是一个类,它的标题和日期都在sorry中,这是一个键入错误。它是items.Length我以后在代码中需要这个titl变量,如果我像var titl=items[i].Title那样做,那么它同样会给字符串[]带来相同的错误:@Shaharyar,如果你循环i检查items.Length而不是strArr.Length,你将只读取字符串的前半部分items@BlasSoriano不我正在使用I和I+1访问循环体中的strArr。我将遍历整个数组