C# 将字符串拆分为不同的数组

C# 将字符串拆分为不同的数组,c#,C#,我正在尝试将字符串拆分为两个不同的数组。基本上,我希望这样工作:StreamReader读到这样一行: List<char> chars = new List<char> (); List<string> names = new List<string>(); List<string> types = new List<string>(); List<string> paths = new List<st

我正在尝试将字符串拆分为两个不同的数组。基本上,我希望这样工作:
StreamReader
读到这样一行:

List<char> chars = new List<char> ();

List<string> names = new List<string>();
List<string> types = new List<string>();
List<string> paths = new List<string>();

int index = 1;
while (streamReader.Peek() >= 0)
{
  char ch = (char)reader.Read();

  if (ch == '|')
  {
    switch(index)
    {
      case 1: names.Add( new String(chars.ToArray()));
      case 2: types.Add( new String(chars.ToArray()));
      case 3: paths.Add( new String(chars.ToArray()));
    }

    index = (index==3? 1: index+1);
    chars.Clear ();
    continue;
  }

  chars.Add(ch);
}
名称|类型|路径

并用“|”分隔“名称”、“类型”和“路径”。然后将它们添加到数组(“name”转到数组“name”,“type”到“type”数组,“path”到“path”数组),但我想不出任何方法来实现这一点


我希望这三个数组最好保留在数组列表中。

如果您有流读取器,您可能希望这样:

List<char> chars = new List<char> ();

List<string> names = new List<string>();
List<string> types = new List<string>();
List<string> paths = new List<string>();

int index = 1;
while (streamReader.Peek() >= 0)
{
  char ch = (char)reader.Read();

  if (ch == '|')
  {
    switch(index)
    {
      case 1: names.Add( new String(chars.ToArray()));
      case 2: types.Add( new String(chars.ToArray()));
      case 3: paths.Add( new String(chars.ToArray()));
    }

    index = (index==3? 1: index+1);
    chars.Clear ();
    continue;
  }

  chars.Add(ch);
}
List chars=新列表();
列表名称=新列表();
列表类型=新列表();
列表路径=新列表();
int指数=1;
while(streamReader.Peek()>=0)
{
char ch=(char)reader.Read();
如果(ch='|')
{
开关(索引)
{
案例1:names.Add(新字符串(chars.ToArray());
案例2:types.Add(新字符串(chars.ToArray());
案例3:path.Add(新字符串(chars.ToArray());
}
指数=(指数==3?1:指数+1);
chars.Clear();
持续
}
添加字符(ch);
}

你应该试试这个,希望它能解决你的问题

var yourstring = "name|type|path";
string[] yourarrayname = yourstring.Split('|');
var name = yourarrayname[0];
var type=yourarrayname[1];
var path = yourarrayname[2];

你应该开始了。您真的不应该使用数组数组作为数据结构-请随意找到好的副本,它解释了为每个记录使用类的正确方法。@AlexeiLevenkov我已经找到了它。不幸的是,我在这里发布了解决方案,我会接受答案,但由于投了反对票,这家伙出去了……我如何才能将VAR添加到列表中?