在列表中查找具有特定值的对象

Jam*_*s A 1 c# class list object

我有这门课:

public class Person
{
    public String name;
    public int score;
    public float multiplier;

    public Person(String nameID)
    {
        name = nameID;
        score = 0;
        multiplier = 1.0f;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个包含这些类的List:

private List<Person> _people;
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使用这个名字得分吗?

_people.GetScore("example name"); // return the score of the class containing that name?
Run Code Online (Sandbox Code Playgroud)

Sal*_*ari 8

使用LINQ:

_people.FirstOrDefault(c => c.name == "example name")?.score;
Run Code Online (Sandbox Code Playgroud)

只是不要忘记首先添加using System.Linq;到您的using指令.另请注意,您还需要使用Null条件运算符(?.),用于在执行成员访问之前测试null(score在本例中)另外,最好使用属性而不是字段:

public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)