我正在尝试拆分string
(input
)
"1#Artikel1|ArtikelN$2#Artikel1|Artikel2|ArtikelN$3#ArtikelN"
到List<string>
(liste
)预期结果(简化)
{
"Artikel1 , ArtikelN",
"Artikel1 , Artikel2 , ArtikelN",
"ArtikelN"
}
但是我在这个过程中遇到编译时错误:
无法将string []转换为字符串
private List<Data> GetData(string input)
{
List<Data> liste = new List<Data>();
foreach (string section in input.Split('$'))
{
String[] tab = section.Split('#');
String[] parties = new string[20];
int i = 0;
for (int j = 1; j < tab.Length; j++)
{
parties[i] =tab[j].Split('|'); <- ERROR HERE
i++;
};
liste.Add(new Data(// insert data));
}
return liste;
}
我该如何解决这个问题?提前谢谢。
答案 0 :(得分:2)
此行tab[j].Split('|')
会根据分隔符tab[j]
将|
中的字符串拆分为字符串数组。因此,您无法将此调用的结果分配给
parties[i]
,其类型为字符串。
答案 1 :(得分:1)
如果我理解你(请参阅评论),
我希望:派对数组中的
Artikel1 , Artikel
你想在章节中Split
然后Join
文章(让我们这样说),即
string input = @"1#Artikel1|ArtikelN$2#Artikel1|Artikel2|ArtikelN$3#ArtikelN";
List<string> liste = input
.Split('$') // split into chapters
.Select(chapter => chapter // for each chapter:
.Substring(chapter.IndexOf('#') + 1) // get rid of 1#, 2# etc. prefix
.Split('|')) // Split by |
.Select(items => string.Join(" , ", items)) // Join back by " , "
.ToList();
我们来看看
Console.Write(string.Join(Environment.NewLine, liste));
结果:
Artikel1 , ArtikelN
Artikel1 , Artikel2 , ArtikelN
ArtikelN