Sha256: c105ce6723ea3f5f86c2899c96a7e575adcf69c821e071ddc9cf9a5fb8248dac

Contents?: true

Size: 938 Bytes

Versions: 208

Compression:

Stored size: 938 Bytes

Contents

using System.Collections.Generic;
using System.Linq;

public class Allergies
{
    private readonly int score;
    private static readonly Dictionary<string, int> AvailableAllergies = new Dictionary<string, int>
        {
            { "eggs", 1 },
            { "peanuts", 2 },
            { "shellfish", 4 },
            { "strawberries", 8 },
            { "tomatoes", 16 },
            { "chocolate", 32 },
            { "pollen", 64 },
            { "cats", 128 }
        };

    public Allergies(int score)
    {
        this.score = score;
    }

    public bool AllergicTo(string allergy)
    {
        return IsInAllergyScore(AvailableAllergies[allergy]);
    }

    public IList<string> List()
    {
        return AvailableAllergies.Where(x => IsInAllergyScore(x.Value)).Select(x => x.Key).ToList();
    }

    private bool IsInAllergyScore(int allergyValue)
    {
        return (score & allergyValue) == allergyValue;
    }
}

Version data entries

208 entries across 208 versions & 1 rubygems

Version Path
trackler-2.1.0.53 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.52 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.51 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.50 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.49 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.48 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.47 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.46 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.45 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.44 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.43 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.42 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.41 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.40 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.39 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.38 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.37 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.36 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.34 tracks/csharp/exercises/allergies/Example.cs
trackler-2.1.0.33 tracks/csharp/exercises/allergies/Example.cs