Как использовать IndexOf () метод Списка <объект>

Мне трудно полагать, что любой думал бы, что никакое добавление отступа не является хорошей идеей. Это является просто немым, я не позвонил бы ему назад также, если бы он сделал это для меня на интервью.

Комментарии немного более серы, большой код сам документирующий в большой степени. ЕСЛИ Вы пишете, что большой код тогда комментирует, должны только быть места экономно в местах, где то, что продолжается, действительно сложно и твердо следовать.

46
задан SteveC 31 January 2012 в 15:28
поделиться

4 ответа

int index = employeeList.FindIndex(employee => employee.LastName.Equals(somename, StringComparison.Ordinal));

Изменить: без лямбда-выражений для C # 2.0 (оригинал не использует LINQ или какой-либо .NET 3 + функции, только лямбда-синтаксис в C # 3.0):

int index = employeeList.FindIndex(
    delegate(Employee employee)
    {
        return employee.LastName.Equals(somename, StringComparison.Ordinal);
    });
72
ответ дан 26 November 2019 в 20:16
поделиться

вы можете сделать это, переопределив метод Equals

class Employee
    {
        string _name;
        string _last;
        double _val;
        public Employee(string name, string last, double  val)
        {
            _name = name;
            _last = last;
            _val = val;
        }
        public override bool Equals(object obj)
        {
            Employee e = obj as Employee;
            return e._name == _name;
        }
    }
9
ответ дан 26 November 2019 в 20:16
поделиться
public int FindIndex(Predicate<T> match);

Использование лямбда-выражений:

employeeList.FindIndex(r => r.LastName.Equals("Something"));

Примечание:

// Returns:
//     The zero-based index of the first occurrence of an element
//     that matches the conditions defined by match, if found; 
//     otherwise, –1.
22
ответ дан 26 November 2019 в 20:16
поделиться

Извините, еще один для хорошей меры :)

int index = employees.FindIndex(
      delegate(Employee employee)
        {
           return employee.LastName == "Something";
        });

Редактировать: - Полный пример в проекте .NET 2.0.

class Program
{
    class Employee { public string LastName { get; set; } }
    static void Main(string[] args)
    {
        List<Employee> employeeList = new List<Employee>();
        employeeList.Add(new Employee(){LastName="Something"});
        employeeList.Add(new Employee(){LastName="Something Else"});
        int index = employeeList.FindIndex(delegate(Employee employee) 
                           { return employee.LastName.Equals("Something"); });
        Console.WriteLine("Index:{0}", index);
        Console.ReadKey();
    }
}
4
ответ дан 26 November 2019 в 20:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: