Search code examples
c#collectionsimplicit-typing

Implicitly typed array of triplets


I have a unit test method:

private bool TestCompatibility(string type1, string type2, bool shouldBeCompatible)
{
}

As it "knows" which types are (designed) compatible, it makes a call to the unit that is being tested and looks for errors. Errors should appear for incompatible types only, so the method tests, is units type-checking code right-implemented or not.

The question: how have I write the triplets collection?

I want something like:

var ar = { { "Num", "Num", true }, { "Num", "Datetime", false } };
foreach (var triplet in ar)
{
    // ???
}

with implicit typing.

P.S. I know that I can use attributes along with NUnit. Nevertheless, I want to see, how it can be written without libraries.

Regards,


Solution

  • I don't know if this is what you are looking for, but you could make use of anonymous types:

    var ar = new[] { 
        new { Type1 = "Num", Type2 = "Num", Compatible = true }, 
        new { Type1 = "Num", Type2 = "Datetime", Compatible = false } 
    };
    foreach (var triplet in ar)
    {
        TestCompatibility(triplet.Type1, triplet.Type2, triplet.Compatible);
    }