字符串数组拆分 - 字符串[]到字符串错误

时间:2018-04-11 07:48:33

标签: c# string split

我正在尝试拆分stringinput

"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;
}

我该如何解决这个问题?提前谢谢。

2 个答案:

答案 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