根据匹配参数返回对象

时间:2014-08-30 07:55:35

标签: c# linq

为了简化我的长篇故事,我必须稍微改进一下这段代码:

public class Faerie
{
    public string Name;
}

public class Example
{
    List<Faerie> faeries = new List<Faerie>() { 
        new Faerie { Name = "Wild Faerie" } ,
    new Faerie { Name = "Smoke Faerie" },
    new Faerie { Name = "Red Faerie" }
    };

    string[] faerieNamesFromInput = new string[] { "White Faerie", "Wild Faerie", "Dark Faerie" };

    public Faerie ReturnMatchedFromInput()
    {

    }
}

如果其名称与用户输入中的名称相匹配,我如何从仙女列表中返回一个Fairy对象?比如说,在这里,我想要回复名为Wild Faerie的精灵,因为它的名字匹配。那里有一个简短的LINQ方式,或者我必须进行循环?

2 个答案:

答案 0 :(得分:2)

如果您想要返回多个匹配

faeries.Where(x => faerieNamesFromInput.Contains(x.Name));

如果您想首先返回匹配的

faeries.FirstOrDefault(x => faerieNamesFromInput.Contains(x.Name));

答案 1 :(得分:0)

简单地做

var result = faeries.FirstOrDefault(x => faerieNamesFromInput.Contains(x.Name));

确保包含System.LINQ命名空间。