2013-04-30 31 views
0

我懷疑有LINQ對於這一點,但我無法弄清楚
selectedKeys是一個HashSetLINQ此的foreach

public IEnumerable<FTSword7bitThesaurus> FTSwordsPlusSelected 
{ 
    get 
    { 
     foreach (FTSword7bit w in FTSWords7bit) 
     { 
      yield return new FTSword7bitThesaurus(this, w, selectedKeys.Contains(w.Key)); 
     } 
     Debug.Write("Done FTSthersarus FTSwordsPlusSelected"); 
    } 
} 
+4

你應該試試resharper!它幫助我學習linq和lambda表達,而我的工作 – Jonesopolis 2013-04-30 12:44:57

+0

@Jonesy resharper看起來不錯,但這是我的口袋裏。 – Paparazzi 2013-04-30 14:32:55

+0

我相信你可以免費使用它30天 – Jonesopolis 2013-04-30 15:30:27

回答

6

您應該使用Select

return FTSWords7bit.Select(w=> 
        new FTSword7bitThesaurus(this, w, 
              selectedKeys.Contains(w.Key))); 
+0

經過測試,它的工作表示感謝。在我發佈之前,我很接近。 – Paparazzi 2013-04-30 13:15:34

2

如何LINQ它需要是?

get 
{ 
    var result = FTSWords7bit 
     .Select(x => new FTSword7bitThesaurus(this, x, selectedKeys.Contains(x.Key)); 
    Debug.Write("Done FTSthersarus FTSwordsPlusSelected"); 
    return result; 
} 
+0

你有一個抄寫錯誤。您已將var更改爲'x',但仍使用'w.Key'。 – Jamiec 2013-04-30 12:48:38