搜索类型以查找精确变量

时间:2018-09-18 19:09:59

标签: c# .net linq search

我想创建一个可以在列表中搜索某些东西并返回bool的函数。

MyList内部包含多个元素。每个变量都有一个名称变量,分配了不同的字符串。我想在列表中搜索特定的名称。 示例:

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 :(得分:2)

您可以使用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");