C# 查找类列表的索引

本文关键字:索引 列表 查找 | 更新日期: 2023-09-27 18:32:27

查找类的索引:

我知道找到列表索引的唯一方法是

        int index = listEmployee.FindIndex(
            delegate(Employee findEmployee)
            {
                return findEmployee.Name.Equals(findName, StringComparison.Ordinal);
            });

我想知道如何添加要使用的选项

int indexT = listEmployee.FindIndex(r >= r.Name == findName);

或者基本上我做错了什么,我不能使用它。

class Employee
{
    private string _name; private int _idNumber; 
    private string _deptarment; private string _position;
    public Employee()
    {
        _name = ""; _idNumber = 0; _deptarment = ""; _position = "";
    }
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
    public int IdNumber
    {
        get { return _idNumber; }
        set { _idNumber = value; }
    }
    public string Department
    {
        get { return _deptarment; }
        set { _deptarment = value; }
    }
    public string Position
    {
        get { return _position; }
        set { _position = value; }
    }
}

C# 查找类列表的索引

我想知道如何添加要使用的选项

int indexT = listEmployee.FindIndex(r >= r.Name == findName);

这很好,除了语法问题之外r >=应该r =>

所以这有效:

int indexT = listEmployee.FindIndex(r => r.Name == findName);

请参阅: lambda 表达式

int indexT = listEmployee.FindIndex(r => r.Name == findName);

应该工作。也许你错过了使用System.Linq裁判

不完全确定您要完成什么,但是简单的List集合无法确保顺序或排序,因此索引(特别是如果集合将预期会更改)不是访问特定对象的可靠方法。

如果索引/顺序很重要,可以查看不同的集合类型,例如排序列表:http://msdn.microsoft.com/en-us/library/system.collections.sortedlist.aspx

如果你只是想找到一个特定的对象,你可以使用 Linq 并执行以下操作:

listEmployee.Where( r => r.Name == findName );