C#: Easy access to the member of a singleton ICollection<> ?

Posted by Rosarch on Stack Overflow See other posts from Stack Overflow or by Rosarch
Published on 2010-03-17T18:12:50Z Indexed on 2010/03/17 18:21 UTC
Read the original article Hit count: 337

Filed under:
|
|

I have an ICollection that I know will only ever have one member. Currently, I loop through it, knowing the loop will only ever run once, to grab the value. Is there a cleaner way to do this?

I could alter the persistentState object to return single values, but that would complicate the rest of the interface. It's grabbing data from XML, and for the most part ICollections are appropriate.

        // worldMapLinks ensured to be a singleton
        ICollection<IDictionary<string, string>> worldMapLinks = persistentState.GetAllOfType("worldMapLink");

        string levelName = ""; //worldMapLinks.GetEnumerator().Current['filePath'];

        // this loop will only run once
        foreach (IDictionary<string, string> dict in worldMapLinks) // hacky hack hack hack
        {
            levelName = dict["filePath"];
        }

        // proceed with levelName
        loadLevel(levelName);

Here is another example of the same issue:

        // meta will be a singleton
        ICollection<IDictionary<string, string>> meta = persistentState.GetAllOfType("meta");
        foreach (IDictionary<string, string> dict in meta) // this loop should only run once. HACKS.
        {
            currentLevelName = dict["name"];
            currentLevelCaption = dict["teaserCaption"];
        }

Yet another example:

    private Vector2 startPositionOfKV(ICollection<IDictionary<string, string>> dicts)
    {
        Vector2 result = new Vector2();
        foreach (IDictionary<string, string> dict in dicts) // this loop will only ever run once
        {
            result.X = Single.Parse(dict["x"]);
            result.Y = Single.Parse(dict["y"]);
        }

        return result;
    }

© Stack Overflow or respective owner

Related posts about c#

Related posts about style