Как десериализовать Счетный. ToList <> () для Списка <>

Я совершил простую ошибку. Я не добавлял данные к целевому фрейму данных, а скорее к новому weighted_t, что означало, что фрейм данных не был сохранен. Это простое исправление. Спасибо всем, кто пытался помочь.

for i in range(df.shape[0]):
    weighted_df = weighted_df.append(weighted_rows(i), ignore_index=True)
5
задан Erik Öjebo 9 March 2010 в 09:21
поделиться

5 ответов

Опция On - создать собственную реализацию CustomList, которая является оберткой вокруг экземпляра, реализующего IList

, т. Е .:

public CustomList<AnotherObject> Items    
{      
    return new CustomList<AnotherObject>(items); 
}

, т.е. когда вы добавляете в свой CustomList он добавляет в список поддержки.

Похоже, что пока ваш класс реализует IList , а также IList , у вас все будет хорошо.

2
ответ дан 15 December 2019 в 06:34
поделиться

Yes, unfortunately you can't go about it this way. Calling ToList() creates a brand new instance of the list, so when you add items to that instance they aren't going to be reflected in the original list (as you've clearly discovered).

I don't use NHibernate, but I would be curious to see if your container implements IList (the non-generic version). From the thread you referenced, it appears that System.Collections.IList is what's actually required (and that's implemented by List, which is why it works). Does your container implement IList?

1
ответ дан 15 December 2019 в 06:34
поделиться

Не могли бы вы просто разыграть это так?

public class MyObject
{
    private IList<AnotherObject> items;
    public List<AnotherObject> Items()
    {
        return (List<AnotherObject>)items;
    }
}

Разве не хватило шанса попробовать это, но я думаю, что это должно сработать!

0
ответ дан 15 December 2019 в 06:34
поделиться

Я думаю, что коллекция NHibernate PersistentBag (неуниверсальная) реализует IList , поэтому вы можете печатать элементы как IList вместо IList . Ссылка в вашем вопросе гласит, что проблема в том, что для репликатора требуется IList, который реализует List , а IList - нет (см. Рисунок).

0
ответ дан 15 December 2019 в 06:34
поделиться

Можно ли привести его к IEnumerable ? Вы можете попробовать это:

public class MyObject
{
    private IList<AnotherObject> items;
    public List<AnotherObject> Items
    {
        return new List<AnotherObject>items.Cast<AnotherObject>());
    }
    // or, to prevent modifying the list
    public IEnumerable<AnotherObject> Items
    {
        return items.Cast<AnotherObject>();
    }
}
0
ответ дан 15 December 2019 в 06:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: