2014-08-30 68 views
-1

爲了使我長話短說,我不得不湊合這個代碼一點:如果它的名字從匹配的名稱返回一個對象取決於匹配參數

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() 
    { 

    } 
} 

我怎樣才能從仙女列表返回一個童話對象用戶輸入?比如說,在這裏我想返回名爲Wild Faerie的Faerie,因爲它是名稱匹配。是否有一個簡短的LINQ方式,或者我必須使用for循環?

+1

你有什麼嘗試?這是一個非常基本的'Where' /'FirstOrDefault'查詢。 – Groo 2014-08-30 07:58:58

+0

這是非常基本的,但說實話,這是我第二次使用LINQ,因爲我不使用它設計我的簡單遊戲,我的知識是在初學者水平 – 2014-08-30 08:00:53

+0

@Groo它只是簡單的,如果你知道答案。 – James 2014-08-30 08:03:42

回答

2

如果你想如果你想返回第一匹配然後

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

謝謝!這是我需要的。 – 2014-08-30 08:12:28

0

根本就

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

確保包括System.LINQ返回多個匹配

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

命名空間。