I want to check if a value in one list is in a second list. The second list is a 2 dimensional list defined in a class.

Here's some sample data.

```
tagNoMatchList[0] = "</Configuration>"
tagNoMatchList[1] = "<SWCheck>"
tagNoMatchList[2] = "</SWCheck>"

tagNoMatchList2[0].col = "A29"
tagNoMatchList2[0].tag = "</Configuration>"
tagNoMatchList2[1].col = "A52"
tagNoMatchList2[1].tag = "</SWCheck>"

public class tagNoMatchClass
{
    public string tag { get; set; }
    public string col { get; set; }
}

var tagNoMatchList = new List<string>();
var tagNoMatchList2 = new List<tagNoMatchClass>();

tagNoMatchList2.Add(new tagNoMatchClass
{
    tag = formatTag,
    col = Globals.ConvertColumnNumberToName(Globals.HeaderColumns[Globals.COLUMN_FORMATTING_TAG]) + rowIdx.ToString(),
});

bool test = tagNoMatchList[formatTagError].Any(x => tagNoMatchList2.Any(y=>x.Equals(y.tag)));

```

In the code above, test always has a value of false. It should be true when it tests tagNoMatchList[0] == tagNoMatchList2[0].tag and tagNoMatchList[2] == tagNoMatchList2[1].tag

I have tried various things and can't figure out what I'm doing wrong.

Thank you, jdweng. I must have my terminology wrong. I referred to tagNoMatchClass as a 2 dimensional List. It almost works, but not quite. The code below gives me exactly the opposite of what I want. 

```
for (int formatTagError = 0; formatTagError < tagNoMatchList.Count; formatTagError++)
{
    if (tagNoMatchList2.Any(x => x.tag == tagNoMatchList[formatTagError])) 
    {
        // Do something
    }
}

```

I tried the following, but the if always evaluates to true. There's something that I'm not understanding about the Any syntax.

```
for (int formatTagError = 0; formatTagError < tagNoMatchList.Count; formatTagError++)
{
    if (tagNoMatchList2.Any(x => x.tag != tagNoMatchList[formatTagError])) 
    {
        // Do something
    }
}

```