簡體   English   中英

C#查找類列表的索引

[英]C# Find Index of a List of Classes

查找類的索引:

我知道找到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; }
    }
}

我想知道如何添加使用選項

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集合不會確保順序或排序,所以索引(特別是如果預期集合會發生變化)不是訪問特定的可靠方法賓語。

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

如果您只是想找到一個特定的對象,您可以使用Linq,然后執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM