2016-06-13 12 views
0

我有一个列表 - finalbetfile2LINQ查询匹配至少五个数字从给定的列表

类是,

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

    } 

BetInfo列有六个整数值, 我想匹配Betinforank3of1(结果)的任何命令,代码如下

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

给它工作正常,但对所有6个号码,而不是至少5

回答

3

匹配您可以使用Count代替All,并检查该计数大于或等于5

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

好的,我会检查数据... –

+1

正常工作.. –

+0

为了记录,我认为'Intersect'更有效率。 –

2

使用Intersect

var filteredProjects8 = finalbetfile2 
    .Where(p => rank3of1.Intersect(p.BetInfo).Count() >= 5); 
相关问题