在其他类C#中使用IEnumerable方法



我有一个类Person:

public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
public int age { get; set; }
public IEnumerable<Person> GetPersons(string path)
{
var personlist = new List<Person>();
var lines = System.IO.File.ReadAllLines(path);
foreach (var line in lines)
{
var split = line.Split(";");
var firstName = split[0];
var lastName = split[1];
var age = split[2];
Person person = new Person
{
firstName = firstName,
lastName = lastName,
age = int.Parse(age),
};
personlist.Add(person);
}
return personlist;
}
}

在我的Main方法中,我想将方法GetPersons(string path)应用于列表

var list = new List<Person>();
list = GetPersons("persons.csv");

我没有编译,出现错误CS0103:名称"GetPersons"在当前上下文中不存在

您已经将GetPersons设置为实例方法,这意味着您需要一个Person的实例来调用它-这对您正在做的事情没有太大意义。

使其成为static:有一定的意义

public class Person
{    
public static IEnumerable<Person> GetPersons(string path)
{
// ... //
}
}

然后称之为:

var list = Person.GetPersons("persons.csv");

但是,您应该考虑Person类是否是该代码的正确位置。

您需要创建Person类的新实例,然后调用GetPerson

var list = new List<Person>();
var person = new Person();
list = person.GetPersons("persons.csv");

最新更新