读取和使用List <string []>中的值?

时间:2018-01-23 13:22:20

标签: c# string list separator

在谈到C#时我非常新鲜,而且我遇到了一个问题。

我想知道如何从List<string[]>获取数据并使用它来创建List<MyClass>中的对象?

class FileLoader
{
    public FileLoader()
    {
        if (File.Exists("texter.txt"))
        {
            List<string> itemSaver = new List<string>();
            List<string[]> vectors = new List<string[]>();
            StreamReader reader = new StreamReader("texter.txt", Encoding.Default, true);
            for (string item = reader.ReadLine(); item != null; item = reader.ReadLine())
            {
                itemSaver.Add(item);
            }
            foreach (string a in itemSaver)
            {
                string[] vektor = a.Split(new string[] { "###" }, StringSplitOptions.None);
                vectors.Add(vektor);
            }
        }
    }
}

文本文件有###作为分隔符,我需要在它们之间获取值,这就是Split完成的原因。现在我只需要帮助找出如何 ..

亲切的问候。

2 个答案:

答案 0 :(得分:0)

要访问现有的向量成员,请使用数组的标准[]表示法,即

string [] vector = vectors[7];

您不需要将其分配给您应该能够执行的变量

WriteLine ("{0}", vectors[7]);

答案 1 :(得分:0)

你只需要一个for循环:

    class FileLoader
    {
        List<MyClass> myClassList = new List<MyClass>();
        public FileLoader()
        {
            if (File.Exists("texter.txt"))
            {
                List<string[]> vectors = new List<string[]>();
                StreamReader reader = new StreamReader("texter.txt", Encoding.Default, true);
                for (string item = reader.ReadLine(); item != null; item = reader.ReadLine())
                {
                    string[] vektor = item.Split(new string[] { "###" }, StringSplitOptions.RemoveEmptyEntries).Select(x=> x.Trim()).ToArray();
                    vectors.Add(vektor);

                    MyClass newClass = new MyClass();
                    myClassList.Add(newClass);
                    newClass.title = vektor[0];
                    newClass.type = vektor[1];
                }

            }
        }
    }
    public class MyClass
    {
        public string title { get; set; }
        public string type { get; set; }
    }