1

查找类的索引:

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

        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; }
    }
}
4

3 回答 3

3

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

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

很好,除了r >=应该是的语法问题r =>

所以这有效:

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

请参阅:Lambda 表达式

于 2013-09-21T22:45:37.780 回答
1
int indexT = listEmployee.FindIndex(r => r.Name == findName);

应该管用。也许您缺少using System.Linq参考

于 2013-09-21T22:49:02.740 回答
0

不完全确定您要完成什么,但一个简单的 List 集合并不能确保顺序或排序,因此索引(特别是如果集合预计会改变)不是访问特定的可靠方法目的。

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

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

listEmployee.Where( r => r.Name == findName );
于 2013-09-21T22:50:31.133 回答