Как устранить зацикливание кода снизу - PullRequest
0 голосов
/ 06 сентября 2018

Я хотел бы устранить петли для лучшего кодирования и повышения производительности. Итак, в приведенном ниже коде мне нужно исключить цикл для test1, test 2, test3.

var test1 = _testP.cdata1(id, sdate)
                .Where(t => t.In != null).ToList();

var test2 = _testP.cdata2(id, sdate)
            .groupBy(p => p.In.id)
            .ToDictionary(p => p.Key, p => p.ToDictionary(q => q.Date, q => q));

var test3 = test1.Select(t =>
{
    Dictionary<Date, ClassB> cds = null;
    ClassB cd = null;

    if (test2.TryGetValue(t.In.Id, out cds)
        && cds.TryGetValue(t.date, out cd))
    {
        return new Tuple<ClassB, ClassA>(cd, t);
    }
    return null;
}).Where(p => p != null).ToList();


public IEnumerable<ClassA> cdata1(id, sdate)
{
    // do some operations
    return listA //(listA is the list of all the elements of ClassA object)
}

public IEnumerable<ClassB> cdata2(id, sdate)
{
    // do some operations
    return listA //(listA is the list of all the elements of ClassB object)            
}

public ClassA
{
    public testp in { get; }
    public Date date { get; }
    // other variables
}

public ClassB
{
    public testp in { get; }
    public Date date { get; }
    // other variables
}

Помогите мне написать лучший код для приведенного выше фрагмента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...