2016-06-13 14 views
0

から少なくとも5つの数字を合わせるために、私はリストを持っている - finalbetfile2LINQのクエリ与えられたリスト

クラスは、

class finalbetfile 
    { 
     public int[] BetInfo{ get; set; } 
     public string TransID { get; set; } 
     public string BetAmount { get; set; } 
     public string TransDateTime { get; set; } 

    } 

あるBetInfo列は6つの整数値を持っている、 私はマッチさせたいです私rank3of1(結果)とBetinfoは、任意の順序で、コードが

var rank3of1 = new int[] { intball1, intball2, intball3, intball4, intball5, intball6 }; 
var filteredProjects8 = finalbetfile2.Where(p => rank3of1.All(tag => p.BetInfo.Contains(tag))); 

それ以下に示します。正常に動作しますが、代わりに、少なくとも5

答えて

3

のすべての6つの数字に対して一致するかわりにAllCountを使用し、このカウントが

finalbetfile2.Where(p => rank3of1.Count(tag => p.BetInfo.Contains(tag)) >= 5); 
+0

ok私はデータで確認します... –

+1

正しく動作します.. –

+0

記録のために、私は 'Intersect'がはるかに効率的だと思います。 –

2

使用Intersect 5以上であるかどうかを確認することができます

var filteredProjects8 = finalbetfile2 
    .Where(p => rank3of1.Intersect(p.BetInfo).Count() >= 5); 
関連する問題