ArrayList Manipulation? - PullRequest
       10

ArrayList Manipulation?

0 голосов
/ 28 апреля 2011

можно хранить данные в виде двух arraylist в <list>?

вот мой код с двумя массивами, которые будут сливаться:

ArrayList arrPrices = new ArrayList();
List<StockInfoPrice> lstStockInfoPrice = new List<StockInfoPrice>();
Util oUtils = new Util(); 
arrPrices = oUtils.GetPrices(SymbolIndex);

ArrayList arrDetails = new ArrayList();
List<StockInfoDetails> lstStockInfoDetails = new List<StockInfoDetails>();
Util oUtils = new Util(); 
arrPrices = oUtils.GetDetails(SymbolIndex);

Ответы [ 4 ]

3 голосов
/ 28 апреля 2011

Вы можете сделать это с помощью linq просто:

lstStockInfoPrice.AddRange(arr1.Cast<StockInfoPrice>());
lstStockInfoPrice.AddRange(arr2.Cast<StockInfoPrice>());

См. Cast в IEnumerable.

1 голос
/ 28 апреля 2011

Если этот класс Util не ваш, то вы застряли с ответом Мариуса. Однако, если вы управляете этим классом Util, вы можете заставить методы GetPrices и GetDetails возвращать someting с типом IEnumerable и IEnumerable соответственно.

Затем вы можете добавить весь лот в другой список с помощью метода List.AddRange ().

Кроме того, ваше выделение в объявлении arrPrices - пустая трата времени - выделенный объект никогда не используется и затем будет подвергаться сборке мусора.

Ваш метод GetPrices () возвращает ArrayList, т. Е. new arrayList и

arrPrices = oUtils.GetPrices(SymbolIndex);

просто заставляет arrPrices ссылаться на новый список. Тогда нет ссылок на тот, который вы выделили при объявлении arrPrices, поэтому он отбрасывается.

Сделай так: -

ArrayList arrPrices;
List<StockInfoPrice> lstStockInfoPrice = new List<StockInfoPrice>();
Util oUtils = new Util(); 
arrPrices = oUtils.GetPrices(SymbolIndex);
1 голос
/ 28 апреля 2011

Возможно.

Вы можете попробовать следующее, если oUtils.GetPrices (SymbolIndex) возвращает StockInfoPrice;

lstStockInfoPrice.AddRange(oUtils.GetPrices(SymbolIndex));
1 голос
/ 28 апреля 2011

Если вы хотите переместить значение из arrPrices в lstStockInfoPrice и lstStockInfoDetails, вы можете перебрать список массивов и поместить элементы в список.Как то так:

foreach(var o in arrPrices)
{
  lstStockInfoPrice.Add(o); // or Add((StockInfoPrice)o)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...