Сбой итератора странным образом в System.Linq.Enumerable.WhereSelectListIterator - PullRequest
0 голосов
/ 19 октября 2019

У меня есть метод, который извлекает динамическую коллекцию ({System.Linq.Enumerable.WhereSelectListIterator}) через интерфейс Simple.Odata. Когда я выполняю его итерацию, чтобы перевести его в список (T предоставляется в метод во время выполнения), он точно повторяется, но в тот момент, когда я добавляю повторяющийся элемент в список внутри foreach, он повторяет только первый элемент и НЕ выполняетдобавить любые последующие элементы.

public async Task<List<T>> GetEntities<T>(string filter, int TopN = 1000) where T : new(){
  dynamic e = ODataDynamic.Expression;
  dynamic et = ODataDynamic.ExpressionFromReference(typeof(T).Name);
            dynamic entities = await client
                                    .For(e.Company)
                                    .Key(companyName)
                                    .NavigateTo(et)
                                    .Filter(filter)
                                    .Top(TopN)
                                    .FindEntriesAsync();
   List<T> entlist = new List<T>();
   foreach (dynamic ent in entities)
     {
         //ent accurately steps through the collection
         // but t gets stuck on only the FIRST value of ent
         // all future assignments of t=ent reverts to the first value!

         var t = new T();
         t = ent;  // only results in the first value of ent. 
        entlist.Add(t); 
          //ends up with a list containing n times the first value of ent
      }
}
...