Список поиска типа для точной переменной - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу создать функцию, которая будет искать в списке что-то и возвращать bool.

MyList имеет несколько элементов внутри.Каждой переменной name назначается отдельная строка.Я хочу найти в списке конкретное имя .Пример:

public class Type 
{
    public string name;
}

List<Type> MyList;

bool FindByName(string str) 
{
    foreach (Type type in MyList) 
    {
        if (type.name == str) 
            return true;
    }
}

Функция FindByName - это то, что я хотел бы сделать универсальной.Функция, которая будет принимать:

List<T>, NameOfVariableToLookIn, U WhatToLookFor

И вы можете просто дать функцию:

List<Type>, name, string str 

Беспокоиться, если это вообще возможно.Я действительно не хочу писать новую функцию для каждого нового списка, который я создаю.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы можете использовать метод расширения Any() из пространства имен System.Linq.И вы могли бы реализовать метод расширения.Например:

public static class Extensions
{
    public static bool FindByName(this IEnumerable<Type> list, string str)
    {
        return list.Any(x => x.name == str);
    }
}

Помните, что метод расширения является статическим методом, а не частью списка, поэтому вы должны ссылаться на класс Extensions.Вы можете использовать это так:

List<Type> MyList = new List<Type>();
MyList.Add(..); // add objects

var exists = MyList.FindByName("john");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...