c#比较c#中的两个整数列表

时间:2017-07-24 17:53:54

标签: c#

我有两个列表

List<int> comments ;
List<int> no_checks;

现在我想看看是否所有no_checks都有评论。因此,在我处理数据时,无论何时添加评论,都要将其ID添加到评论列表中,当选择无广播时,将其ID添加到no_checks

所以输出到控制台的示例

1

 below should return false;
 comment=[12, 13,15]
 no_checks = [12,13,15,17 ] //one no has no comment

2

 below should return true  
 comment=[12, 13,15]
 no_checks = [12,13 ] //all have comments  

所以我被困在这里

public bool allnoHaveComments(){
 var allhave=true;

 for(var i=0; i<no_checks.count; i++){ 
    //if one no_checks is not contained in comments allhave=false

  }
  return allhave;
 }

我如何继续比较并检查no_checks中的id是否包含在评论中,如果它们没有返回false

我该怎么做呢

3 个答案:

答案 0 :(得分:2)

bool isallnoHaveComments= !no_checks.Except(comment).Any();

答案 1 :(得分:1)

这为您提供no_checks中不在评论

中的值
convert_string = '01-01-{}'.format

您的问题基本上是Check whether an array is a subset of another

答案 2 :(得分:-1)

我在这里使用了两个for循环,一个用于注释列表,另一个用于no_checks,它嵌套在循环中用于注释

private bool check_Commentexist(List<int> comments, List<int> no_checks)
{
    var j = 0;
    var k = 0;

    Boolean commentexist = false;
    for (var i = 0; i < no_checks.Count; i++)
    {
        j = no_checks[i];
        commentexist = false;
        for (var x = 0; x < comments.Count; x++)
        {
            k = comments[x];
            if (j == k) { commentexist = true; break; }
        }
        //if no match found for atleast on element break the loop
        if (commentexist == false) break;
        //else if match found the looping continues to check the
        //next element in 'no_checks' for a mathcing comment
    }

    return commentexist;
}