LINQ query code for complex merging of data.

Posted by Stacey on Stack Overflow See other posts from Stack Overflow or by Stacey
Published on 2010-03-16T14:44:20Z Indexed on 2010/03/16 14:46 UTC
Read the original article Hit count: 346

Filed under:
|
|

I've posted this before, but I worded it poorly. I'm trying again with a more well thought out structure.

Re-writing this a bit to make it more clear. I have the following code and I am trying to figure out the shorter linq expression to do it 'inline'. Please examine the "Run()" method near the bottom. I am attempting to understand how to join two dictionaries together based on a matching identifier in one of the objects - so that I can use the query in this sort of syntax.

 var selected = from a in items.List()
                // etc. etc.
                select a;

This is my class structure. The Run() method is what I am trying to simplify. I basically need to do this conversion inline in a couple of places, and I wanted to simplify it a great deal so that I can define it more 'cleanly'.

class TModel
{
    public Guid Id { get; set; }
}
class TModels : List<TModel>
{
}
class TValue
{
}

class TStorage
{
    public Dictionary<Guid, TValue> Items { get; set; }
}

class TArranged
{
    public Dictionary<TModel, TValue> Items { get; set; }
}
static class Repository
{
    static public TItem Single<TItem, TCollection>(Predicate<TItem> expression)
    {
        return default(TItem); // access logic.
    }
}

class Sample
{
    public void Run()
    {
        TStorage tStorage = new TStorage();
        // access tStorage logic here.

        Dictionary<TModel, TValue> d = new Dictionary<TModel, TValue>();

        foreach (KeyValuePair<Guid, TValue> kv in tStorage.Items)
        {
            d.Add(Repository.Single<TModel, TModels>(m => m.Id == kv.Key),kv.Value);
        }
    }
}

© Stack Overflow or respective owner

Related posts about c#

Related posts about LINQ