在C#中,由班级成员之一搜索班级列表的最佳方法是什么?

Mat*_*hew 2 c# search list

假设我有一个看起来像这样的类:

class SomeClass {
    int m_member;

    public int Member {
        get { return m_member; }
        set { m_member = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

在其他地方,我有一个类型列表List<SomeClass> list.

如果我想在列表中搜索该类的特定实例,我可以这样做

int index = list.IndexOf(someInstance);
Run Code Online (Sandbox Code Playgroud)

但如果我想通过会员搜索列表,我必须这样做:

int index = -1;
for (int i = 0; i < list.Count; i++) {
    if (list[i].Member == someMember) {
        index = i;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

ito*_*son 6

int index = list.FindIndex(m => m.Member == someMember);
Run Code Online (Sandbox Code Playgroud)

  • 如果你需要*而不是索引*,你可以使用`Find()`代替`FindIndex()`(不是OP要求的,只是一个FYI). (2认同)