2009-05-11 4 views
3

私はそれが文字列内に存在する場合、文字列からトークンを選択したい、私は限り以下を持っているが、それはコンパイルできない理由を私はわからないよ:LINQを使用して文字列からトークンを選択するにはどうすればよいですか?

IList<string> tokens = _animals.Split(';'); 

Func<string, bool> f1 = str => str.Contains("Dog"); 
Func<string, Func<string, bool>, string> f2 = str => Equals(f1, true); 

var selected = tokens.Select(f2); 

乾杯

Ollie

答えて

0

や単語で

var selected = from token in tokens where token.Contains("Dog") select token; 
+0

ええ、それはあまりにも、私はクエリの構文は、この場合に必要なもの以上ですが(どこで拡張メソッドを行う簡単な呼び出し)です。 – Noldorin

+0

@Noldorinこのバージョンは、ソリューションの解説構文バージョンです –

4

本当にLINQが必要ですか?なぜあなたは次のようなことをすることができますか:

_animals.Contains("Dog") 
+0

を試していません。私はLinqにもっと適した例を見つけることを提案する。大統領(または誰でも)の名前を持つ文字列のリストを作成し、 "L"または "Wa"などで始まるすべての名前を引き出すLinqクエリを作成します。 –

+1

これは尋問者が望んでいるものなのかどうかわかりませんが、間違っている可能性があります。 – Noldorin

+0

それが存在するかどうかを調べるために渡しているトークンを選択するのはそんなに愚かです。文字列にトークンが含まれている場合、なぜそれを再度選択する必要がありますか? –

5

私はあなたがほしいと思うだけです。

var selected = tokens.Where(str => str.Contains("Dog")); 
0

それがあるべきよりもあなたの問題をさらに複雑にする必要はありませこの

var result = (from p in tokens where p.Contains("Dog") select p); 
関連する問題