が含まれています(動作しない)以下のための非ラムダExpressでのLINQを行うにはどうすればよい:LINQは
string[] words = { "believe", "relief", "receipt", "field" };
var wd = (from word in words
select word).Any(Contains ("believe"));
が含まれています(動作しない)以下のための非ラムダExpressでのLINQを行うにはどうすればよい:LINQは
string[] words = { "believe", "relief", "receipt", "field" };
var wd = (from word in words
select word).Any(Contains ("believe"));
それはあなたがfrom wor in words select wor
がやっていると信じて良いものをはっきりしていません - それは本当にあなたを助けてくれていません。
なぜあなたはでないのか分かりません。はラムダ式を使いたいと思います。明白なアプローチがある:これは単語のリストは、言葉では「信じる」があるかどうかをチェックされていないことを
bool hasBelieve = words.Any(x => x.Contains("believe"));
注 - 単語のリストが「信じる」を含む任意の単語を持っているかどうかをチェックしていますが。だから "信者"は大丈夫でしょう。
bool hasBelieve = words.Contains("believe");
EDIT:あなた本当には、ラムダ式なしでそれをしたい場合は、基本的に偽の作業を行う必要がありますが、あなたはだけリストはあなただけ使用することができますbelieve
含まれているかどうかを確認したい場合ラムダ式(または匿名メソッドは)あなたのためにすること:
public class ContainsPredicate
{
private readonly string target;
public ContainsPredicate(string target)
{
this.target = target;
}
public bool Apply(string input)
{
return input.Contains(target);
}
}
次にあなたが使用することができます。
Func<string, bool> predicate = new ContainsPredicate("believe");
bool hasBelieve = words.Any(predicate);
明らかにあなたが本当にかかわらず...
がEDITことを行うにはしたくない:もちろんあなたでき使用:
var allBelieve = from word in words
where word.Contains("believe")
select word;
bool hasBelieve = allBelieve.Any();
しかし、それはあまりにもかなり醜いです - 私は間違いなく、ラムダを使用したいが表現。
Jonに感謝します。私はそれがどのように行われているかを見たいので、非ラムダでどうやってやれますか? –
@NatePet:私の編集を参照してください。しかし、あなたが意味するものであるかどうかは本当にはっきりしません。あなたは「非ラムダ」によって何を思いついたのですか? –
あなたは非常に似ていること
string[] words = { "believe", "relief", "receipt", "field" };
var wd = (from wor in words
where wor.Contains("believe")
select wor);
この質問のようにそれを行うことは、ここで求められているように見えます:http://stackoverflow.com/questions/1566439/linq-help-with-contains-and -a-lambda-query – Dessus