在谈到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完成的原因。现在我只需要帮助找出如何 ..
亲切的问候。
答案 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; }
}