Linq查询用于匹配给定列表中的至少五个数字

时间:2016-06-13 06:56:39

标签: c# linq

我有一个列表 - finalbetfile2

班级是,

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

    }

BetInfo列有六个整数值, 我想将Betinfo与我的rank3of1(结果)匹配任何订单,代码如下:

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

它工作正常但匹配所有6个数字而不是至少5个。

2 个答案:

答案 0 :(得分:3)

您可以使用Count代替All并检查此计数是否大于或等于5

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

答案 1 :(得分:2)

使用Intersect

var movies = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.whitespace,
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  remote: {
    wildcard: '%QUERY',
    url: '/movies/autocomplete?query=%QUERY',
    transform: function(response) {
      return response;
    }
  }
});

$('.typeahead').typeahead(null, {
  name: 'movie',
  source: movies
});